Android常用的几个控件(Android学习第二课)

Android常用控件

Android提供了大量的UI控件,下面我们就来探讨最常用的几种控件。
TextView
Button
EditText
ImageIView
ProgressBar
AlerDialog
ProgresBar
AlertDialog
ProgressDialog

1、基本属性讲解

  1. layout_ width: 组件的宽度
  2. layout_height: 组件的高度
  3. id: 为TextView设置一 个组件id
  4. text: 设置显示的文本内容
  5. textColor: 设置字体颜色(颜色的中英文对照及代码
  6. textStyle: 设置字体风格,三个可选值: normal(无效果), bold(加粗), italic(斜体)
  7. textSize:字体大小,单位-般是用sp
  8. background: 控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片
  9. 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_parentfill_parentwrap_parent,其中match_parentfill_parent意义相同,官方推荐使用match_parent
match_parent表示当前控件的大小和父布局的大小一样,由父布局去决定。
wrap_parent表示控件刚好能包含内容,控件大小由内容决定。
android:gravity可用来指定文字的对其方式,可选值有topbottomleftrightcenter等。
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

ProgressBarAndroid下的进度条,也是为数不多的直接继承于View类的控件,直接子类有AbsSeekBarContentLoadingProgressBar,其中AbsSeekBar的子类有SeekBarRatingBar

 <ProgressBar
    android:id="@+id/progress_bar"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"/>

通常我们这个控件用android:visibility属性进行指定它是否可见。可选值有:visibleinvisiblegone

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;
                }
            }
        });
    }

}

谚语

惜时、专心、苦读是做学问的一个好方法。——蔡尚思

猜你喜欢

转载自blog.csdn.net/kerio123/article/details/115446519