Color:前面兩個FF是透明度
FF:全不透明? 00:全透明(看不到了)
TextColor只能訪問Color? 所以要給夜間模式提供另一套顏色
values-右鍵-resourcefile-night mode-把原本就存在的colors里的代碼復制粘貼進colors(night)里
1.設置APP的圖標
a.導入圖片?mipmap中
b.清單文件?manifests中?icon/roundIcon=@mipmap/logo
2.設置APP的名稱
Values->Strings->App_Name
3.取消ActionBar
Values->themes->NoActionBar
4.主題切換(深色和白色)
Values下創(chuàng)建NightMode下的資源文件
同一個Name不同的值
5.語言切換(中英切換)
Values->Strings?->?open?editor
添加鍵值對
點擊Add?Locale?->?選擇語言?->?添加翻譯內容
6.MainActivity:主界面(程序運行起來第一個加載的頁面)
自己創(chuàng)建一個界面
a.創(chuàng)建一個類SecondActivity:?AppCompatActivity
b.Layout下創(chuàng)建布局文件管理界面的布局
c.在activity中關聯對應layout布局文件
setContentView(R.layout.activity_login)
7.界面的生命周期(創(chuàng)建?->?銷毀)
onCreate:?界面布局和初始化
onStart:?界面即將啟動
onRestart:?重新啟動
onResume:界面已經展現出來这揣,可以和用戶交互了
onPause:?臨時暫停
onStop:?停止交互
onDestory:銷毀頁面
8.如何訪問系統的資源
圖片、文本垮耳、顏色盾致。拨黔。。
系統為每一個資源分配了一個編號id
R.id.login
R.string.name
R.layout.activity_login
9.創(chuàng)建的多有界面(Activity)必須在清單文件中配置
<activity android name = ".LoginActivity"/>
<activity?android:name=".LoginActivity"></activity>
10.顯示尺寸
layout_width
layout_height
wrap_content?包裹內容:控件尺寸由多大就多大
match_parent?匹配父容器:父容器有多大挽鞠,這個控件就多大
11.代碼中如何獲取layout布局文件中的某個控件
a.使用findViewById<>(R.id.button)?通過id查找這個控件
b.kotlin的擴展,直接使用id
c.jetpack里的viewbinding組件
12.定時器的使用
//創(chuàng)建一個定時器
timer?=?Timer()
//開啟定時器
timer.schedule(object:TimerTask(){
override?fun?run()?{
//隨機產生一個索引值
val?index?=?Random.nextInt(namesList.size)
//取名字賦值給TextView
nameTextView.text?=?namesList[index]
}
},0,100)
13.AS中如何看錯誤信息
logcat?->?error
子線程中不能操作UI主線程的控件
Only?the?original?thread?that?created?a?view?hierarchy?can?touch?its?views
錯誤原因
nameTextView.text?=?namesList[index]
解決辦法
runOnUiThread?{
nameTextView.text?=?namesList[index]
}
ConstraintLayout
FrameLayout
RelativeLayout
LinearLayout
demo:抽獎
class?MainActivity?:?AppCompatActivity()?{
val?namesList:MutableList?=?mutableListOf(
"妲己","亞瑟","狄仁杰","后羿","耀","程咬金","瀾","瑤")
lateinit?var?timer:Timer
override?fun?onCreate(savedInstanceState:?Bundle?)?{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//獲取layout布局中的一個控件
val?btn?=?findViewById(R.id.button)
val?nameTextView?=?findViewById(R.id.textView)
//監(jiān)聽按鈕的點擊事件
/*btn.setOnClickListener(object:View.OnClickListener{
override?fun?onClick(v:?View?)?{
}
})*/
btn.setOnClickListener?{
if?(btn.text?==?"Start"){
btn.text?=?"Stop"
//創(chuàng)建一個定時器
timer?=?Timer()
//開啟定時器
timer.schedule(object:TimerTask(){
override?fun?run()?{
//隨機產生一個索引值
val?index?=?Random.nextInt(namesList.size)
//取名字賦值給TextView
runOnUiThread?{
nameTextView.text?=?namesList[index]
}
}
},0,100)
}else{
btn.text?=?"Start"
timer.cancel()
}
}
}
}