文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么在Android中使用Kotlin实现一个登录界面

2023-05-30 20:50

关注

怎么在Android中使用Kotlin实现一个登录界面?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

登录界面代码如下:

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<LoginActivity> {    override fun createView(ui: AnkoContext<LoginActivity>) = 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<MainActivity>() 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 &copy; Henry") {          textSize = 14f          gravity = Gravity.CENTER or Gravity.BOTTOM        }.lparams {          bottomMargin = dip(35)          weight = 1f        }      }    }  }  override fun onClick(v: View) {    when (v.id) {    }  }}

  实现出来的效果和我们设置布局文件所实现的效果一样,但是相比使用布局文件来说,使用Kotlin将会更加的简洁明了,省去了定义变量和查找布局文件的操作,大大解放了我们程序员;

  下面的代码所示是笔者使用布局文件实现的布局效果,和上面的效果一样,但是会复杂很多,大家可以自己自己体会一下;

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:layout_gravity="center_horizontal"  android:background="#ffffff"  android:orientation="vertical"  android:padding="40dp">  <de.hdodenhof.circleimageview.CircleImageView    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/profile_image"    android:layout_width="96dp"    android:layout_height="96dp"    android:layout_gravity="center_horizontal"    android:src="@drawable/touxiang"    app:civ_border_color="#FF000000"    app:civ_border_width="2dp" />  <LinearLayout    android:id="@+id/lin_count"    android:layout_width="300dp"    android:layout_height="40dp"    android:layout_marginTop="45dp"    android:background="@drawable/bg_frame_corner"    android:gravity="center_vertical"    android:orientation="horizontal">    <ImageView      android:layout_width="wrap_content"      android:layout_height="25dp"      android:layout_marginLeft="12dp"      android:layout_marginRight="15dp"      android:src="@drawable/count" />    <EditText      android:id="@+id/loginAccount"      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:background="@null"      android:hint="登录账户"      android:maxLength="11"      android:textSize="16sp" />  </LinearLayout>  <LinearLayout    android:id="@+id/lin_password"    android:layout_width="300dp"    android:layout_height="40dp"    android:layout_marginTop="10dp"    android:background="@drawable/bg_frame_corner"    android:gravity="center_vertical"    android:orientation="horizontal">    <ImageView      android:layout_width="wrap_content"      android:layout_height="25dp"      android:layout_marginLeft="12dp"      android:layout_marginRight="15dp"      android:src="@drawable/password"/>    <EditText      android:id="@+id/loginPassword"      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:background="@null"      android:hint="账户密码"      android:password="true"      android:maxLength="11"      android:textSize="16sp"/>  </LinearLayout>  <Button    android:id="@+id/login_button"    android:layout_width="300dp"    android:layout_height="44dp"    android:layout_gravity="center"    android:background="@drawable/bg_login_btn"    android:layout_marginTop="18dp"    android:text="登录"    android:textColor="#ffffff"    android:textSize="18sp" />  <LinearLayout    android:id="@+id/lin_remember"    android:layout_width="300dp"    android:layout_height="wrap_content"    android:layout_marginTop="18dp"    android:gravity="center_vertical"    android:orientation="horizontal">    <CheckBox      android:id="@+id/rem_pas_check"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:paddingLeft="5dp"      android:text="记住密码"      android:textColor="#666666"      android:textSize="16sp" />    <TextView      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:gravity="right"      android:text="新用户注册"      android:textColor="#1783e3"      android:textSize="16sp" />  </LinearLayout>  <TextView    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginBottom="35dp"    android:layout_weight="1"    android:gravity="bottom|center"    android:text="Copyright &copy; Henry"    android:textSize="14sp" /></LinearLayout>

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯