UI基础控件
1.View
- 处理文本内容的View(TextView)
- 被点击的View(Button)
- 处理图片内容的View(ImageView)
- 接收用户信息输入的View(EditText)
- 进度条类的View(ProgressBar)
2.通用属性
3.具体实例
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".SecondActivity">
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="61dp"
android:layout_toRightOf="@+id/textView1"
android:ems="10" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText1"
android:layout_alignBottom="@+id/editText1"
android:layout_alignParentLeft="true"
android:text="Enter Message:" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="34dp"
android:text="Submit" />
</RelativeLayout>
Button注册点击事件的方法
- 自定义内部类
- 匿名内部类
- 当前Activity去实现事件接口
- 在布局文件中添加点击事件属性
xml文件
<?xml version="1.0" encoding="utf-8"?>
<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=".ButtonActivity">
<Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="通过自定义内部类实现点击事件"/>
<Button
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="通过匿名内部类实现点击事件"/>
<Button
android:id="@+id/btn3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="通过当前activity实现点击事件接口"/>
<Button
android:id="@+id/btn4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="在xml文件中绑定"
android:onClick="myClick"/>
<Button
android:id="@+id/btn5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="在xml文件中绑定"
android:onClick="myClick"/>
</LinearLayout>
java文件
package com.example.testmodule;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class ButtonActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button);
Button btn1 = findViewById(R.id.btn1);
//点击事件
//自定义内部类
MyClickListener mcl=new MyClickListener();
btn1.setOnClickListener(mcl);
Button btn2=findViewById(R.id.btn2);
//匿名内部类适用于有唯一作用的按钮
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//在控制台输出
Log.e("tag","===匿名内部类===");
}
});
//当前Activity去实现事件接口
Button btn3 = findViewById(R.id.btn3);
btn3.setOnClickListener(this);
}
@Override
public void onClick(View view){
//在控制台输出一条语句
Log.e("TAG","用本类实现了OnClickListener");
}
class MyClickListener implements View.OnClickListener{
@Override
public void onClick(View view){
//在控制台输出一条语句
Log.e("TAG","刚刚点击的按钮注册了内部监听类对象的按钮");
}
}
//在xml文件中绑定
//参数:被点击的控件对象
public void myClick(View v) {
switch (v.getId()) {
case R.id.btn4:
Log.e("TAG", "通过xml绑定的点击事件btn4");
break;
case R.id.btn5:
Log.e("TAG", "btn5=====");
break;
}
}
}
ProgressBar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ProgressBarActivity"
android:orientation="vertical">
<!--
进度条默认为转圈,修改样式需设置风格
style 设置风格 @style/Widget.AppCompat.ProgressBar.Horizontal
android:progress="30"
android:max="120"
android:indeterminate="true" 设置为一直滚动
-->
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:progress="30"
android:max="120"/>
<ProgressBar
android:id="@+id/progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:indeterminate="true"/>
</LinearLayout>
ImageView
android:src
android:background
<ImageView
android:id="@+id/item_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@mipmap/star"
android:background="#ffffff"/>