Android常用控件
Android提供了大量的UI控件,下面我们就来探讨最常用的几种控件。
- TextView
- Button
- EditText
ImageIView
ProgressBar
AlerDialog
ProgresBar- AlertDialog
ProgressDialog
1、基本属性讲解
- layout_ width: 组件的宽度
- layout_height: 组件的高度
- id: 为TextView设置一 个组件id
- text: 设置显示的文本内容
- textColor: 设置字体颜色(颜色的中英文对照及代码)
- textStyle: 设置字体风格,三个可选值: normal(无效果), bold(加粗), italic(斜体)
- textSize:字体大小,单位-般是用sp
- background: 控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片
- gravity; 设置控件中内容的对齐方向,TextView中 是文字,ImageView中是图片等等
2、TextView
<?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">
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is Text view"
android:textSize="40sp"
android:textColor=" #DC143C"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>
Android中所有的控件都有这三个属性match_parent、fill_parent和wrap_parent,其中match_parent和fill_parent意义相同,官方推荐使用match_parent。
① match_parent表示当前控件的大小和父布局的大小一样,由父布局去决定。
②wrap_parent表示控件刚好能包含内容,控件大小由内容决定。
③android:gravity可用来指定文字的对其方式,可选值有top、bottom、left、right、center等。
④android:textSize属性设置文字的大小
⑤android:textColor属性设置文字的颜色
3、Button
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:textAllCaps="false"
android:background="#BA55D3"
/>
textAllCaps=“false”,由于系统会自动把按钮上的文字自动转换成大写,我们可以用这个代码禁用。背景颜色默认是设置不了的,所以需要去修改文件的配置,详情操作请点击参考这个链接的文章。
3.1、在MainActivity中为Button的点击事件注册一个监听器
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//此处添加逻辑
}
});
}
}
当点击按钮的时候,系统就会去执行监听器的onClick()的方法。
4、EditText
EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是用户跟Android应用进行数据传输的窗户,比如实现一个登陆界面,需要用户输入账号密码,然后我们获取用户输入的内容,提交给服务器进行判断。
<TextView
android:id="@+id/edit_query"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Type something here"
android:maxLines="2"
/>
①android:hint属性指定一些提示性的文本
②android:maxLines属性限制EditText的最大行数
5、ImageView
ImageView(图像视图),直接继承自View类,它的主要功能是用于显示图片,实际上它不仅仅可以用来显示图片,任何Drawable对象都可以使用ImageView来显示。ImageView可以适用于任何布局中,并且Android为其提供了缩放和着色的一些操作。
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img"/>
android:src属性给ImageView指定了一张图片
5.1、通过代码动态更改ImageView中的图片,需要修改MainAcvtivity的代码
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button1);
imageView=(ImageView)findViewById(R.id.image);
button.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()){
case R.id.button1://如果点击按钮button1就会执行下面的操作
imageView.setImageResource(R.drawable.image2);//setImageResource()方法将显示的图片改为image2
break;
default:
break;
}
}
}
6、ProgressBar
ProgressBar是Android下的进度条,也是为数不多的直接继承于View类的控件,直接子类有AbsSeekBar和ContentLoadingProgressBar,其中AbsSeekBar的子类有SeekBar和RatingBar。
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
通常我们这个控件用android:visibility属性进行指定它是否可见。可选值有:visible,invisible和gone。
①visible表示控件可见,这个是默认值。
②invisible表示控件不可见,但是它依然占据原来的位置和大小。
③gone表示控件不可见,并且不再占用任何屏幕空间。
④代码设置控制使用的方法为setVisibility()
7、AlerDialog
AlertDialog:是一种警告,提醒对话框;
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
可通过·style属性将他改成不同类型的进度条
7.1MainActivity中的代码如下:
public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button_1);
progressBar=(ProgressBar)findViewById(R.id.progress_bar) ;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.button_1:
if (progressBar.getVisibility()==View.GONE){//getVisibility()方法判断ProgressBar是否可见
progressBar.setProgress(View.VISIBLE);
}
else {
progressBar.setVisibility(View.GONE);
}
}
}
});
}
}
8、ProgressDialog
ProgressDialog继承自AlertDialog,AlertDialog继承自Dialog。ProgressDialog的创建方式有两种,一种是new
ProgressDialog,一种是调用ProgressDialog的静态方法show()创建并显示,这种进度条只能是圆形条。
运行效果:
MainActivity中的代码如下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button_1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.button_1:
ProgressDialog progressDialog=new ProgressDialog(MainActivity.this);//构建ProgressDialog对象
progressDialog.setTitle("This is ProgressDialog");//设置标题
progressDialog.setMessage("loading");//设置内容
progressDialog.setCancelable(true);//如果传入的是false,表示ProgressDialog是不能通过back建取消的
progressDialog.show();//将ProgressDialog显示出来
break;
default:
break;
}
}
});
}
}
谚语
惜时、专心、苦读是做学问的一个好方法。——蔡尚思