Android12--常见控件(一)

标签: Android

创建时间:2016-9-24 09:56:47
更新时间:2016-9-24 14:43:30


undefined

TextView #

TextView是文本展示控件,前面我们已经多次使用到了。

示例:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:paddingTop="250px"
    android:textColor="#00ff00"
    android:textSize="25dp"
    android:text="Hello World!" />

常见属性:

android:id 指定ID

android:layout_width 指定显示的宽度,可以是match_parent(和父元素一样),wrap_content(适应内容)

android:layout_height 指定显示的高度,可以是match_parent(和父元素一样),wrap_content(适应内容)

android:text 指定显示的文本

android:gravity 对齐方式,可选值有top、bottom、left、right、center
、center_vertical等,可以用“|”来同时指定多个值
android:gravity:设置的是控件自身上面的内容位置
android:layout_gravity:设置控件本身相对于父控件的显示位置。

android:textSize="24sp" 文字大小24sp
android:textColor="#00ff00" 文本颜色#00ff00 

我们可以在代码里获取和设置文本的内容:

(TextView)findViewById(R.id.tv).getText().toString();
(TextView)findViewById(R.id.tv).setText("test");

Button #

按钮组件,这个用的比较多,我们前面经常给按钮绑定一个点击事件。

它可配置的属性和TextView是差不多的,都可以指定宽、高、对齐方式、字体大小等等。

示例:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="打开浏览器"
    android:layout_marginTop="105dp"
    android:id="@+id/btnBrower"/>

EditText #

文本输入框。文本输入框有些特有的属性:

android:hint 默认提示语

android:maxLines 最多显示行数

android:inputType 指定输入类型,有text,date,datetime,number,phone,time,numberPassword,textPassword,textVisiblePassword,textEmailAddress,textUri等等

示例:

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="请输入姓名"
    android:id="@+id/etName"/>

ImageView #

ImageView是用于在界面上展示图片的一个控件。使用android:src属性给ImageView指定了一张图片。

这里使用mipmap目录里的ic_launcher.png示例:

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

我们也可以在程序里改变图片:

ImageView imageView =(ImageView)findViewById(R.id.image_view);
imageView.setImageResource(R.mipmap.ic_launcher);

ProgressBar #

ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。

转圈的进度:

<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/progressBar"
    android:layout_gravity="center" />

水平进度条:

<ProgressBar
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/progressBar2"
    android:progress="5"
    android:max="10"
    android:layout_gravity="center"/>

属性说明

android:progress 进度条当前值
android:max 进度条最大值

android:visibility 控件可见状态

所有的Android控件都具有这个属性,可以通过android:visibility进行指定,可选值有三种:visibleinvisiblegone

visible表示控件是可见的,这个值是默认值,不指定android:visibility时,控件都是可见的。invisible表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。gone则表示控件不仅不可见,而且不再占用任何屏幕空间。

我们还可以通过代码来设置控件的可见性,使用的是setVisibility()方法,可以传入View.VISIBLEView.INVISIBLEView.GONE三种值。

package com.a52fhy.learnwidget;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    protected ProgressBar progressBar;
    protected ProgressBar progressBar2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        progressBar = (ProgressBar) findViewById(R.id.progressBar);
        progressBar2 = (ProgressBar) findViewById(R.id.progressBar2);

        findViewById(R.id.btnShowPro).setOnClickListener(this);
        findViewById(R.id.btnUpdPro).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            //显示隐藏进度条
            case R.id.btnShowPro:
                int status = (progressBar.getVisibility() == View.VISIBLE) ? View.INVISIBLE : View.VISIBLE;
                progressBar.setVisibility(status);
                break;

            //更新进度条
            case R.id.btnUpdPro:
                int progress = progressBar2.getProgress();
                progress += 2;
                progressBar2.setProgress(progress);
                break;
        }
    }
}

上面的代码里我们除了设置进度条的显示、隐藏外,还使用setProgress()动态的更新了进度条。

Build by Loppo 0.6.6