亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Android中使用Kotlin實現一個簡單的登錄界面

2024-07-21 23:03:38
字體:
來源:轉載
供稿:網友

Kotlin 是一種在 Java 虛擬機上運行的靜態類型編程語言,被稱之為 Android 世界的Swift,由 JetBrains 設計開發并開源。

Kotlin 可以編譯成Java字節碼,也可以編譯成 JavaScript,方便在沒有 JVM 的設備上運行。

在Google I/O 2017中,Google 宣布 Kotlin 成為 Android 官方開發語言。

剛接觸Kotlin的第一天,仿照QQ的登錄界面,先寫一個簡單的登錄界面,雖然筆者用的不是很熟,還在慢慢摸索,但是Kotlin是真的很簡潔,筆者的實現效果如下:

kotlin,實現登錄界面,android簡單登錄界面

登錄界面代碼如下:

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 © 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 © Henry"    android:textSize="14sp" /></LinearLayout>

總結

以上所述是小編給大家介紹的Android Kotlin實現一個簡單的登錄界面,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到kotlin教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文在线中文网在线观看| 欧美精品videossex性护士| 国产精选久久久久久| 精品久久香蕉国产线看观看gif| 美女av一区二区| 欧美日韩国产成人高清视频| 最好看的2019年中文视频| www高清在线视频日韩欧美| 久久久免费av| 51久久精品夜色国产麻豆| 中文字幕亚洲一区在线观看| 欧美成人一二三| 色综合五月天导航| 久久久久亚洲精品国产| 久久久久亚洲精品| 国产成人福利视频| 亚洲图片在线综合| 欧美老少做受xxxx高潮| 国产视频丨精品|在线观看| 久久精品成人欧美大片| 久久伊人色综合| 亚洲日韩欧美视频一区| 成人精品一区二区三区电影黑人| 一夜七次郎国产精品亚洲| 国产精品中文字幕在线观看| 亚洲欧美在线看| 亚洲国产精品va在线看黑人动漫| 欧美激情精品久久久久久变态| 欧美视频精品一区| 在线国产精品播放| 97高清免费视频| 亚洲欧美国产一区二区三区| 久久久精品国产一区二区| 中文字幕亚洲欧美在线| 色琪琪综合男人的天堂aⅴ视频| 国产精品9999| 成人免费福利在线| 欧美中文字幕视频| 91牛牛免费视频| 日韩精品免费在线观看| 亚洲国产成人一区| 日韩欧美在线观看视频| 在线看日韩欧美| 国产精品视频永久免费播放| 8090成年在线看片午夜| 久久国内精品一国内精品| 日韩黄色在线免费观看| 91精品国产91久久久久久吃药| 久久国产精品影视| 精品露脸国产偷人在视频| 日韩精品视频中文在线观看| 亚洲香蕉伊综合在人在线视看| 国产成人精品日本亚洲| 亚洲精品影视在线观看| 色综合导航网站| 国产精品国语对白| 欧美性生交大片免网| 欧美极品美女视频网站在线观看免费| 国产精品久久久久久久久免费| 中文字幕日韩欧美在线视频| 91国产精品电影| 色噜噜久久综合伊人一本| 日韩精品视频在线观看网址| 国产成人精品最新| 黄色精品一区二区| 久久久久久亚洲| 亚洲国产精品yw在线观看| 色诱女教师一区二区三区| 亚洲午夜久久久久久久| 成人久久一区二区| 国产精品久久久久影院日本| 国产精品日韩欧美| 伊人av综合网| 亚州av一区二区| 欧日韩不卡在线视频| 欧美多人乱p欧美4p久久| 中文字幕欧美精品在线| 国产91精品青草社区| 97婷婷涩涩精品一区| 色香阁99久久精品久久久| 亚洲精品永久免费精品| 2019中文在线观看| 国模视频一区二区三区| 美日韩丰满少妇在线观看| 久久久在线视频| 久久成年人视频| 国色天香2019中文字幕在线观看| 亚洲日韩欧美视频一区| 欧美成人国产va精品日本一级| 日韩在线观看网址| 欧美在线视频播放| 福利视频一区二区| 欧美精品生活片| 18一19gay欧美视频网站| 亚洲成人在线视频播放| 精品视频在线观看日韩| 日韩av在线影院| 亚洲色图15p| 国产一区香蕉久久| 色樱桃影院亚洲精品影院| 日韩激情视频在线播放| 清纯唯美亚洲综合| 91精品在线看| 国产成人精品电影久久久| 日韩欧美精品在线观看| 国产精品极品美女粉嫩高清在线| 亚洲精品国产拍免费91在线| 国产一区二区日韩| 亚洲欧美激情一区| 国产精品夫妻激情| 人人澡人人澡人人看欧美| 欧美激情第6页| 亚洲片在线观看| 国产精品久久视频| 久久久久久成人精品| 亚洲欧美日韩天堂一区二区| 国产97免费视| 久久影院模特热| 久久手机免费视频| 蜜臀久久99精品久久久无需会员| 亚洲日本中文字幕免费在线不卡| 欧美精品成人91久久久久久久| 国产免费亚洲高清| 日日噜噜噜夜夜爽亚洲精品| 亚洲综合在线播放| 日韩免费观看视频| 国产精品99久久久久久白浆小说| 国产精品91免费在线| 亚洲最大成人免费视频| 美女av一区二区| 波霸ol色综合久久| 久久999免费视频| 国产精品一区专区欧美日韩| 国产不卡av在线| 亚洲综合中文字幕在线| 美女扒开尿口让男人操亚洲视频网站| 91日本视频在线| 91国内免费在线视频| 亚洲精品资源美女情侣酒店| 欧美综合在线观看| 91国内精品久久| 欧美成aaa人片在线观看蜜臀| 97精品在线观看| 午夜欧美不卡精品aaaaa| 亚洲精品v欧美精品v日韩精品| 欧美一区二区影院| 欧美电影免费播放| 欧美又大又粗又长| 91美女福利视频高清| www.午夜精品| 国产亚洲精品一区二区| 久久五月天色综合| 亚洲欧美成人在线| 视频在线观看一区二区| 国产精品一香蕉国产线看观看| 久久久精品一区| 成人av番号网| 91国产精品视频在线| 欧美大荫蒂xxx| 久久久午夜视频| 日韩成人av在线播放| 国产精品成人一区二区三区吃奶| 国产精品jvid在线观看蜜臀| 超碰97人人做人人爱少妇|