1、TextView
layout...xml中定义的TextView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#00ff00"
android:textSize="24sp"
android:text="Hello World!" />
</LinearLayout>
属性:
android:id给当前控件定义了一个唯一标识符
android:layout_width和android:layout_height指定了控件的宽度和高度
Android中所有的控件都具有这两个属性,可选值有3种:match_parent、wrap_content和固定值。
match_parent表示让当前控件的大小和父布局的大小一样;
wrap_content表示让当前控件的大小能够刚好包含住里面的内容,由控件内容决定当前控件的大小。
固定值表示表示给控件指定一个固定的尺寸,单位一般用dp,这是一种屏幕密度无关的尺寸单位,可以保证在不同分辨率的手机上显示效果尽可能地一致,如50dp就是一个有效的固定值。
android:gravity来指定文字的对齐方式,可选值有top、bottom、start、end、center等,可以用“|”来同时指定多个值,这里我们指定的是"center",效果等同于"center_vertical|center_horizontal",表示文字在垂直和水平方向都居中对齐。
android:textColor属性可以指定文字的颜色
android:textSize属性可以指定文字的大小。文字大小要使用sp作为单位,这样当用户在系统中修改了文字显示尺寸时,应用程序中的文字大小也会跟着变化。
android:background用于为布局或控件指定一个背景,可以使用颜色或图片来进行填充。
还有很多常见的属性,需要时在查阅即可。

2、Button
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="Button"
android:textSize="24sp"
android:textColor="#00ff00"
android:backgroundTint="#ff0000"/>
Button会将text自动全部转换为大写,如果想保留原始字样,需要配置
android:textAllCaps="false"
设置按钮颜色需要使用android:backgroundTint!!!
为按钮Button设置点击事件监听器,在MainActivity中的onCreate()中,调用setOnClickListener()函数,代码如下:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button: Button = findViewById(R.id.button)
button.setOnClickListener {
//业务逻辑
}
}
}
这里调用button的setOnClickListener()方法时利用了Java单抽象方法接口的特性,从而可以使用函数式API的写法来监听按钮的点击事件。这样每当点击按钮时,就会执行Lambda表达式中的代码,我们只需要在Lambda表达式中添加待实现的逻辑就行了。
除了使用API的方式来注册点击事件监听器,还可以通过实现接口的方式来进行注册,代码如下:
class MainActivity : AppCompatActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button: Button = findViewById(R.id.button)
button.setOnClickListener(this)
}
override fun onClick(p0: View?) {
when (p0?.id) {
R.id.button -> {
//逻辑
}
}
}
}
在定义类后添加上 View.OnClickListener 接口,然后重写onClick()函数。
button的所有属性可参考:
android:layout_margin它可以指定控件在上下左右方向上的间距。当然也可以使用android:layout_marginLeft或android:layout_marginTop等属性来单独指定控件在某个方向上的间距。
3、EditText
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Type something here"
android:maxLines="2"/>
android:hint 为EditText增加提示性文本,当键入文本时自动消失。
android:maxLines 规定EditText的最大行数为2行,防止输入文本过长

我们可以结合Button和EditText来实现一些功能。比如通过按钮获得EditText中输入的内容。代码:
button.setOnClickListener {
val inputText = textView.text.toString()
Toast.makeText(this,inputText,Toast.LENGTH_SHORT).show()
}
也可以重写onClick():
class MainActivity : AppCompatActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button: Button = findViewById(R.id.button)
// val textView:EditText = findViewById(R.id.editText)
// button.setOnClickListener {
// val inputText = textView.text.toString()
// Toast.makeText(this,inputText,Toast.LENGTH_SHORT).show()
// }
button.setOnClickListener(this)
}
override fun onClick(p0: View?) {
when (p0?.id) {
R.id.button -> {
val textView:EditText = findViewById(R.id.editText)
val inputText = textView.text.toString()
Toast.makeText(this,inputText,Toast.LENGTH_SHORT).show()
}
}
}
}
本人用的真实机开发,不放图片了!
4、ImageView
<ImageView
android:id="@+id/imageView"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:src="@drawable/img_1"/>
现在最主流的手机屏幕分辨率大多是xxhdpi的,所以我们在res目录下再新建一个drawable-xxhdpi目录,然后将将需要放置的图片放在目录下。
然后调用android:src参数,来输入图片地址。
还可以通过按钮点击事件来动态显示,代码如下:
val imageView: ImageView = findViewById(R.id.imageView)
imageView.setImageResource(R.drawable.ic_launcher_background)
5、ProgressBar
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:progressBarStyleHorizontal"
android:max="100" />
默认是一个圆形的加载条,但是会一直旋转,不会消失。如何让它消失有个新的知识点:
Android控件的可见属性,所有的Android都有这个属性,可以通过android:visibility指定,可选值有三种:visible、invisible和gone。
visible:控件可见
invisible:控件不可见,但是占据着应占有的位置和大小,相当于透明
gone:控件不可见,而且不占用任何屏幕
我们可以通过代码来设置控件的可见性,使用的函数是setVisibility(),允许传入View.VISIBLE、View.INVISIBLE和View.GONE这3种值。
可以实现点击按钮,进度条消失,再次点击,进度条出现,代码如下:
val progressBar: ProgressBar = findViewById(R.id.progressBar)
if (progressBar.visibility == View.VISIBLE) {
progressBar.visibility = View.GONE
} else {
progressBar.visibility = View.VISIBLE
}
另外,还可以指定ProgressBar的不同样式,默认是圆形进度条,通过style属性可以将它指定成水平进度条?android:progressBarStyleHorizontal,并可以通过android:max来设置一个最大值。
可以设置按钮点击一次进度条+10事件,代码如下:
val progressBar: ProgressBar = findViewById(R.id.progressBar)
progressBar.progress += 10
if (progressBar.progress == 100) {
progressBar.visibility = View.GONE
progressBar.progress = 0
} else {
progressBar.visibility = View.VISIBLE
}
6、AlertDialog
AlertDialog可以在当前界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽其他控件的交互能力,因此AlertDialog一般用于提示一些非常重要的内容或者警告信息。比如为了防止用户误删重要内容,在删除前弹出一个确认对话框。
代码如下:
AlertDialog.Builder(this).apply {
setTitle("Alert Dialog")
setMessage("This is important message!")
setCancelable(false)
setPositiveButton("OK"){ dialog, which ->
}
setNegativeButton("False"){ dialog, which ->
}
show()
}
这里调用了apply函数,具体调用原因见:
标准函数with、run、apply等和静态方法
https://mp.youkuaiyun.com/mp_blog/creation/editor/123735155首先通过AlertDialog.Builder构建一个对话框,setTitle、setMessage是对这个对话框设置信息。
setCancelable是设置可否使用Back键关闭对话框
setPositiveButton()方法为对话框设置确定按钮的点击事件
setNegativeButton()方法设置取消按钮的点击事件
show()来将对话框显示出来。
https://blog.youkuaiyun.com/chengxu_kuangrexintu/article/details/79582934
7812



被折叠的 条评论
为什么被折叠?



