文章目錄
- TestView
- Button
- EditText
- ImageView
- ProgressBar
- AlertDialog
Android給我們提供了大量的UI控制元件,首先我們新建一個UIWidgetTest專案,默認Android Studio自動創建Activity,Activity名和布局名都使用默認值
TestView
它主要用于在界面上顯示一段文本資訊
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is TextView"/>
</LinearLayout>

android:id給當前控制元件定義了一個唯一的識別符號
android:layout_width和android:layout_height指定了控制元件的寬度和高度,Android中所有的控制元件都具有這兩個屬性
可選值:match_parent,wrap_content和固定值
match_parent表示讓當前控制元件的大小和父布局的大小一樣
wrap_content:表示讓當前控制元件的大小能夠剛好包含住里面的內容,也就是控制元件內容決定當前控制元件的大小
固定值表示指定一個固定的尺寸,單位一般用dp
我們好像沒看出TextView的寬度和螢屏一樣寬的,這是由于TextView中的文字默認是居左上角對齊的,雖然TextView的寬度充滿了整個螢屏,可是由于文字內容不夠長,所以從效果上完全看不出來,現在修改對齊方式,如下:
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="This is TextView"/>

android:gravity來指定文字的對齊方式,可選值有top,bottom,start,end,center等
另外我們還可以對TextView中文字的顏色和大小進行修改,如下:
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#00ff00"
android:textSize="24sp"
android:text="This is TextView"/>

android:textColor屬性可以指定文字的顏色
android:textSize屬性可以指定文字的大小,文字大小要使用sp作為單位
Button
Button是程式用于和用戶進行互動的一個重要控制元件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- <TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#00ff00"
android:textSize="24sp"
android:text="This is TextView"/>
-->
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"/>
</LinearLayout>

可能大家發現我們定義的是Button,但是圖片中是BUTTON,這是因為Android系統默認會將按鈕上的英文字母全部轉換為大寫,可能是認為按鈕上的內容是比較重要叭,如果你想按照你寫的來顯示,可以加上android:textAllCaps=“false” 這個屬性,這樣系統就會保留你指定的原始文字內容
接下來,我們可以在MainActivity中為Button的點擊事件注冊一個監聽器
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button=findViewById<Button>(R.id.button)
button.setOnClickListener{
//在此處添加邏輯
}
}
}
EditText
EditText是程式用于和用戶進行互動的另一個重要控制元件,它允許用戶在控制元件里輸入和編輯內容,并可以在程式中對這些內容進行處理.應用場景:發短信,聊QQ
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

一些人性化的軟體會在輸入框里顯示一些提示性文字,一旦用戶輸入任何內容,這些提示性文字就會消失
android:hint="Type something here"
隨著內容越來越多,EditText會被不斷拉長,這是因為EditText高度指定的是wrap_content,可以通過設定最大行數,當輸入內容超過2行時,文本就會向上翻滾
android:maxLines="2"
ImageView
ImageView是用于在界面上展示圖片的一個控制元件,在res目錄下新建一個drawable-xxhdpi目錄,將事先準備的圖片放到該目錄下
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img_1"/>

ProgressBar
ProgressBar用于在界面上顯示一個進度條,表示我們的程式正在加載一些資料
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

可以修改ProgressBar樣式,
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:max="100"/>

AlertDialog
AlertDialog可以在當前界面彈出一個對話框,這個對話框是置頂于所有界面元素之上的,能夠屏蔽其他控制元件的互動能力,因此AlertDialog一般用于提示一些非常重要的內容或者警告資訊
比如為了防止用戶誤刪重要內容,在洗掉前彈出一個確認對話框
class MainActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button:Button=findViewById(R.id.button)
val editText:EditText=findViewById(R.id.editText)
val imageView:ImageView=findViewById(R.id.imageView)
val progressBar:ProgressBar=findViewById(R.id.progressBar)
button.setOnClickListener{
//在此處添加邏輯
// val inputText=editText.text.toString()
// Log.d("MainActivity",inputText)
// Toast.makeText(this,inputText,Toast.LENGTH_LONG).show()
//imageView.setImageResource(R.drawable.img_2)
// if(progressBar.visibility==View.VISIBLE){
// progressBar.visibility=View.GONE
// }else{
// progressBar.visibility=View.VISIBLE
// }
//progressBar.progress=progressBar.progress+10
AlertDialog.Builder(this).apply {
setTitle("this is Dialog")
setMessage("something important")
setCancelable(false)
setPositiveButton("OK"){
dialog,which->
}
setNegativeButton("Cancel"){
dialog,which->
}
show()
}
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378238.html
標籤:其他
下一篇:Flutter 2.8 正式發布
