怎么在Android中使用Kotlin實現(xiàn)一個登錄界面?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司自2013年起,公司以成都網站設計、做網站、系統(tǒng)開發(fā)、網絡推廣、文化傳媒、企業(yè)宣傳、平面廣告設計等為主要業(yè)務,適用行業(yè)近百種。服務企業(yè)客戶成百上千,涉及國內多個省份客戶。擁有多年網站建設開發(fā)經驗。為企業(yè)提供專業(yè)的網站建設、創(chuàng)意設計、宣傳推廣等服務。 通過專業(yè)的設計、獨特的風格,為不同客戶提供各種風格的特色服務。
登錄界面代碼如下:
class LoginActivity : AppCompatActivity(), View.OnClickListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //setContentView(R.layout.activity_login) LoginUi().setContentView(this@LoginActivity) } lateinit var et_account: EditText lateinit var et_password: EditText inner class LoginUi : AnkoComponent{ override fun createView(ui: AnkoContext ) = with(ui) { verticalLayout { backgroundColor = context.resources.getColor(android.R.color.white) gravity = Gravity.CENTER_HORIZONTAL imageView(R.drawable.touxiang).lparams { width = dip(100) height = dip(100) topMargin = dip(64) } linearLayout { gravity = Gravity.CENTER_VERTICAL orientation = HORIZONTAL backgroundResource = R.drawable.bg_frame_corner imageView { image = resources.getDrawable(R.mipmap.ic_username) }.lparams(width = wrapContent, height = wrapContent) { leftMargin = dip(12) rightMargin = dip(15) } et_account = editText { hint = "登錄賬戶" hintTextColor = Color.parseColor("#666666") textSize = 14f background = null }.lparams { topMargin = dip(5) } }.lparams(width = dip(300), height = dip(40)) { topMargin = dip(30) } linearLayout { gravity = Gravity.CENTER_VERTICAL orientation = HORIZONTAL backgroundResource = R.drawable.bg_frame_corner imageView { image = resources.getDrawable(R.mipmap.ic_password) }.lparams(width = wrapContent, height = wrapContent) { leftMargin = dip(12) rightMargin = dip(15) } et_password = editText { hint = "賬戶密碼" hintTextColor = Color.parseColor("#666666") textSize = 14f background = null }.lparams { topMargin = dip(5) } }.lparams { width = dip(300) height = dip(40) topMargin = dip(10) } button("登錄") { gravity = Gravity.CENTER background = resources.getDrawable(R.drawable.bg_login_btn) textColor = Color.parseColor("#ffffff") textSize = 18f onClick { if (et_account.text.toString().isNotEmpty() && et_password.text.toString().isNotEmpty()) startActivity () else toast("請輸入賬戶或者密碼") } }.lparams(width = dip(300), height = dip(44)) { topMargin = dip(18) } linearLayout { orientation = HORIZONTAL gravity = Gravity.CENTER_VERTICAL checkBox("記住密碼") { textColor = Color.parseColor("#666666") textSize = 16f leftPadding = dip(5) } textView("新用戶注冊") { textColor = Color.parseColor("#1783e3") gravity = Gravity.RIGHT textSize = 16f }.lparams(width = matchParent) }.lparams(width = dip(300)) { topMargin = dip(18) } textView("Copyright © Henry") { textSize = 14f gravity = Gravity.CENTER or Gravity.BOTTOM }.lparams { bottomMargin = dip(35) weight = 1f } } } } override fun onClick(v: View) { when (v.id) { } } }
實現(xiàn)出來的效果和我們設置布局文件所實現(xiàn)的效果一樣,但是相比使用布局文件來說,使用Kotlin將會更加的簡潔明了,省去了定義變量和查找布局文件的操作,大大解放了我們程序員;
下面的代碼所示是筆者使用布局文件實現(xiàn)的布局效果,和上面的效果一樣,但是會復雜很多,大家可以自己自己體會一下;
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。