Android中的常用控件的基础控件

在讲几个控件前先讲一下几个在xml中常用的几个参数的区别
dp、sp的区别这里引用简书
match_parent:表示让当前空件和父布局的大小一样
wrap_content:表示让当前控件的大小能够刚好包含著里面的
android:gravity:是让控件中的内容处于什么位置,如:TextView中的android:gravity=“center”,是让text处于textview的中间。可以用 “|” 来同时指定多个值
layout_gravity:让控件处于父布局的什么位置,如:android:layout_gravity=“center”,让控件处于父布局的中间
layout_margin:是用于控件与控件之间,如android:layout_marginLeft=“8dp”,是让该控件距离父布局的左边8dp
android:padding:适用于控件与控件中的内容之间,如android:paddingLeft="8dp"是上控件中的内容距离控件的左边8dp
android:visibility:用于设置控件的可见、不可见、消失.
①可见(visibility=“visible”):这是个默认值,表示控件可见并占用空间
②不可见(visibility=“invisible”):表示控件不可见,但仍旧占用空间
③消失(visibility=“gone”):表示控件不可见,并不占用空间

1.TextView
TextView可以说是Android中最简单的一个控件了, 它主要用于在界面上显示一段文本信息,比如“Hello world!"。

<TextView
        android:id="@+id/text_view"
        android:layout_width="match_parent"
        android:text="hello word!!"
        android:layout_height="wrap_content" />

我们还可以通过android: textSize属性可以指定文字的大小;
通过android :textColor属性可以指定文字的颜色
通过android:textStyle:设置字体风格,三个可选值:normal(无效果),bold(加粗),italic(斜体)

<TextView
        android:textSize="30sp"
        android:textColor="#EA5246"
        android:textStyle="italic"
        android:id="@+id/text_view"
        android:layout_width="match_parent"
        android:text="helloword"
        android:layout_height="wrap_content" />

这样就有了一个红色、斜体、30sp大小的hello world了
在这里插入图片描述

2.Button
Button和他的名字一样,就是按钮。Button有个特点,它的txet中在使用字母时显示出来的值都是默认大写的,可以调用textAllCaps="false"来关闭默认大写。

<Button
        android:text="getSomething"
        android:textAllCaps="false"
        android:id="@+id/btn"
        android:layout_width="120dp"
        android:layout_height="50dp" />

在这里插入图片描述

3.EditText
EditText是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。EditText 的应用场景非常普遍,在进行发短信、发微博、聊QQ等操作时,你不得不使用EditText。那让我们来看下EditText的用法吧,在xml中加入以下内容:

<EditText
        android:id="@+id/editText"
        android:hint="type something Interesting"
        android:layout_width="match_parent"
        android:layout_height="40dp" />

这样我们就得到了一个EditText。但EditText还有一些其他的属性:

①hint(提示文本)——就是在还没有输入时,框中会有一些字,输入后字就会消失,这些字就是在hint中现实的,
用例:hint=“type something here”
②maxLines:用于限制edittext中输入内容的最大行数,如maxLines=“2”——指定了EditText中的最大行数为2行
③可在java中使用editText.getText()来获取在EditText中输入的类容
如String inputText = editText.getText().toString()——获取EditText中的内容并转为string型,再赋值给inputText
我们先修改xml中的代码

<EditText
        android:maxLines="1"
        android:background="@drawable/bac_1"
        android:paddingLeft="8dp"
        android:id="@+id/editText"
        android:hint="type something Interesting"
        android:layout_width="match_parent"
        android:layout_height="40dp" />

其中android:background="@drawable/bac_1是为EditText加了一个黑色圆角边框,方法是在drawable目录下新建xml文件,然后编辑以下代码:(由于黑色边框会挡住一点框中输入的内容所以使用paddingLeft="8dp将内容左移8dp)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 设置一个黑色边框 -->
    <stroke android:width="3dp" android:color="#000000"/>
    <corners android:radius="8sp"/>
</shape>

为了获取编辑框中的内容,我们需要修改java代码:

	private EditText mEdit;
    private Button btn;

初始化EditText和Button,并为Button设置监听

private void initView() {
        mEdit = findViewById(R.id.editText);
        btn = findViewById(R.id.btn);
        
        btn.setOnClickListener(this);
    }
@Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn:
                String input = mEdit.getText().toString();
                Toast.makeText(v.getContext(),input,Toast.LENGTH_SHORT).show(); 
                break;
        }
    }

然后在编辑框中输入内容,点击按钮就能用Toast显示出来了
在这里插入图片描述

4.ImageView
ImageView是用于在界面上展示图片的一个控件。
修改xml中的代码如下:

<ImageView
        android:src="@mipmap/ic_launcher"
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

在这里插入图片描述
我们就得到了一个图片

5.ProgressBar
ProgressBar用于在界面上显示- -个进度条,表示我们的程序正在加载一些些数据。它的用法也非常简单,修改activity_ main.xml 中的代码,如下所示:

<ProgressBar
        android:id="@+id/progressbar"
        android:visibility="visible"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

在这里插入图片描述
ProgressBar还有以下特点:
①默认是圆圈,可通过style="@style/Widget.AppCompat.ProgressBar.Horizontal"设置为直线型(书上说还有其它类型的,但现在好像没了)
②可以在xml处预先设置一个进度条最大值,max="",例如:android:max=“100”——将最大值设置为100
可以在java代码里通过mPgbar.getProgress()来动态获取进度条的当前进度(得到的为int型)
通过mPgbar.setProgress(progress)来动态设置进度条的进度,括号中的progress为一个int型,表示即将设置成的进度。

先修改xml中的代码:

<ProgressBar
        style="@style/Widget.AppCompat.ProgressBar.Horizontal"
        android:id="@+id/progressbar"
        android:visibility="visible"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100"/>
<Button
        android:id="@+id/btn4"
        android:text="getProgress"
        android:layout_width="120dp"
        android:layout_height="50dp" />

修改java中的代码:

private ProgressBar mPgbar;
private Button mBtn4;
private void initView() {
        mEdit = findViewById(R.id.editText);
        btn = findViewById(R.id.btn);
        **mPgbar = findViewById(R.id.progressbar);
        mBtn4 = findViewById(R.id.btn4);**

        btn.setOnClickListener(this);
        **mBtn4.setOnClickListener(this);**
    }

@Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn:
                String input = mEdit.getText().toString();
                Toast.makeText(v.getContext(),input,Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn4:
                int progress = mPgbar.getProgress();
                progress = progress + 10;
                mPgbar.setProgress(progress);
                if (mPgbar.getVisibility() == View.GONE){
                    mPgbar.setVisibility(View.VISIBLE);
                }else {
                    mPgbar.setVisibility(View.GONE);
                }
                break;
        }
    }

在这里插入图片描述
在这里插入图片描述
6.AlertDialog
一个信息的弹框,能够屏蔽其他控件的交互能力,置顶于所有界面元素之上,因此AlertDialog是用于提示一些非常重要的内容或者警告信息。比如为了防止用户误删重要的内容,在删除前弹出一个确认对话框。特点:
①通过AlertDialog.Builder来建立
②setIcon——设置图标;setTitle——设置标题;setMessage——设置内容;setPositiveButton——设置点击确认的监听;
setNegativeButton——设置点击取消的监听;
setCancelable 点击手机返回按键是否允许对话框消失,
setCanceledOnTouchOutside(这个现在好像没了) 点击对话框外部区域是否允许对话框消失
③需要通过builder.show()来启动
使用如下:
xml中的代码:

<Button
        android:layout_gravity="center"
        android:id="@+id/btn2"
        android:text="AlertDialog"
        android:textAllCaps="false"
        android:layout_width="120dp"
        android:layout_height="50dp" />

新家一个Button
java中的代码:

	private Button mBtn2;
    private ProgressBar mPgbar;
private void initView() {
        mEdit = findViewById(R.id.editText);
        btn = findViewById(R.id.btn);
        mBtn2 = findViewById(R.id.btn2);
        mPgbar = findViewById(R.id.progressbar);
        mBtn4 = findViewById(R.id.btn4);

        btn.setOnClickListener(this);
        mBtn2.setOnClickListener(this);
        mBtn4.setOnClickListener(this);
    }

新建函数setAlertDialog(),再点击mBtn2时调用:

private void setAlertDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("THIS IS TITLE");
        builder.setMessage("I'M CONTENT");
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setCancelable(false);
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this,"YOU CLICK OK",Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this,"U DENY IT",Toast.LENGTH_SHORT).show();
            }
        });
        builder.show();

    }

在这里插入图片描述

7.ProgressDialog(貌似已被弃用):
AlertDialog能够屏蔽其他控件的交互能力,置顶于所有界面元素之上, 因此AlertDialog是用于提示一些非常重要的内容或者警告信息。比如为了防止用户误删重要的内容,在删除前弹出一个确认对话框。特点:
①setTile()——设置标题;setMessage()——来设置内容;setCancelable()来设置是否可被取消
②通过 .show()来启动
在xml中新加一个Button:

<Button
        android:layout_gravity="right"
        android:id="@+id/btn3"
        android:text="ProgressDialog"
        android:textAllCaps="false"
        android:layout_width="120dp"
        android:layout_height="50dp" />

修改java中的代码:

private Button mBtn3;
private void initView() {
        mEdit = findViewById(R.id.editText);
        btn = findViewById(R.id.btn);
        mBtn2 = findViewById(R.id.btn2);
        mPgbar = findViewById(R.id.progressbar);
        mBtn3 = findViewById(R.id.btn3);
        mBtn4 = findViewById(R.id.btn4);

        btn.setOnClickListener(this);
        mBtn2.setOnClickListener(this);
        mBtn3.setOnClickListener(this);
        mBtn4.setOnClickListener(this);
    }

新建setProgressDialog()函数,在点击mBtn3时调用:
其中progressdialog.setCancelable()要设为true,如果设为false的话就没办法取消显示这个控件了

private void setProgressDialog() {
        ProgressDialog progressdialog = new ProgressDialog(MainActivity.this);
        progressdialog.setTitle("This is ProgressDialog");
        progressdialog.setMessage("Loading...");
        progressdialog.setCancelable(true);
        progressdialog.show();

    }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值