常用的UI组件

文本类:文本框、编辑框
按钮类:普通按钮、图片按钮、单选按钮、复选框
日期时间:日期时间选择器、时间选择器、计时器

文本框 (TextView )
 用于文字的显示
 android:layout_width=“wrap_content” 文本框的宽度,包裹自身内容
 android:text=“Hello World!” 文本框显示的内容,推荐使用字符串资源来定义内容
 android:textSize=“30sp” 设置文字大小(sp是android推荐的设置字号的单位)
 android:textColor="#FF0000" 设置文字颜色(值的内容可以通过点击代码左边的小方框来选择)
 android:singleLine=“true” 设置单行文本框
 android:background="@drawable/txt2" 设置文本的背景(建议使用9patch图片,放入drawable中,这样可以随着文字多少,自动缩放**.9.PNG)编辑框(EditView)
 可以让用户输入文字内容,实现与用户的交互
 android:hint=“请输入密码” 在编辑框中显示提示信息
 android:inputType=“textPassword” 用户输入时,输入的内容以小黑点的方式(还可以规定用户输入的数据类型等,如只允许输入数字)
 android:drawableLeft="@mipmap/ic_launcher" 实现编辑框左边添加图标与drawableStart相同(还有top、end、right、bottom等,可以将图片放在文字的不同方位)
 android:drawablePadding 可以设置图片与文字间的距离
 android:lines=“3” 文本框的最大行数,当超出时,自动滚动
 android:gravity=“top” 设置文字的位置
 android:padding=“5dp” 设置内边距
 android:layout_margin=“10dp” 设置外边距
 android:inputType=“textMultiLine” 设置为多行获取编辑框的内容
 EditText et = (EditText) findViewById(R.id.et1); 在JAVA中添加
 et.getText()ImageView
 android:scaleType=“fitXY” 图片横向铺满

按钮(Button)
TextView的子类,TextView支持的属性,按钮都支持

事件监听器两种实现方法
a) 匿名内部类作为单击事件监听器
b)通过onClick属性实现

方法a:
效果:单击按钮时,显示消失提示框

Button button = (Button) findViewById(R.id.bnt1);//获取按钮
        button.setOnClickListener(new View.OnClickListener() {//参数为匿名内部类
            @Override
            public void onClick(View v) {//重写onClick
                //下面写单击时要执行代码
                Toast.makeText(MainActivity.this ,"单击了按钮1",Toast.LENGTH_SHORT).show();//单击时提示消息提示框,Toast.LENGTH_SHORT用于设置消息提示框的显示时间长短
            }
        });

方法b:
步骤:
首先在Activity中编写一个包含View类型参数的方法
再将android.onClick属性指定为上一步中的方法名

JAVA中添加方法

public void myClick (View view){
        Toast.makeText(MainActivity.this,"单击了按钮2",Toast.LENGTH_LONG).show();
    }

XML中指定方法名

<Button
        android:id="@+id/bnt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="按钮2"
        android:onClick="myClick"
        />

图片按钮(ImageButton)
与button的不同是,它没有text属性

设置按钮背景为透明
android:background="#0000"

单选按钮(RadioButton)

为单选按钮设置默认选中
android:checked=“true”

获取单选按钮的数量
rgbnt.getChildCount()

单选按钮组
用RadioGroup 将button包含,就组成了button组

RadioButton r = findViewById(checkedId); //获取单选按钮组
onCheckedChanged 按钮被改变
getText() 获取按钮的text值
获取选择的按钮值,并显示

当点击按钮bxx时,监听单选按钮组是否有被选中的,如果有,显示被选中按钮的text

Button bnt2 = (Button)findViewById(R.id.bxx);//
        bnt2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                for (int i = 0;i<rg.getChildCount();i++) {
                    RadioButton r= (RadioButton) rg.getChildAt(i);
                    if(r.isChecked())
                    {
                        Toast.makeText(MainActivity.this,r.getText(),Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });

复选按钮(CheckBox)

事件监听器的设置

like1 = (CheckBox) findViewById(R.id.ch1);
        like1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (like1.isChecked()) {
                    Toast.makeText(MainActivity.this, like1.getText(), Toast.LENGTH_SHORT).show();
                }
            }
        });

日期选择器DatePicker

android 通用ui库设计 android的ui组件有哪些_ide

public class MainActivity extends Activity {
  int  year,month,day;
  DatePicker datePicker;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        datePicker = (DatePicker) findViewById(R.id.date1);
        Calendar calendar = Calendar.getInstance();//日历对象实例化
        year = calendar.get(Calendar.YEAR);//获取当前年
        month = calendar.get(Calendar.MONTH);
        day = calendar.get(Calendar.DAY_OF_MONTH);
        datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {//初始化日历选择器
            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                MainActivity.this.year = year;
                MainActivity.this.month = monthOfYear;
                MainActivity.this.day = dayOfMonth;
                show(year,monthOfYear,dayOfMonth);
            }
        });

    }
    private void show(int year,int month,int day){
        String str = year + "年"+(month+1)+"月"+day;
        Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();

    }
}

时间选择器TimePicker

android 通用ui库设计 android的ui组件有哪些_单选按钮_02

public class MainActivity extends Activity {

  TimePicker timePicker;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        timePicker = (TimePicker) findViewById(R.id.date1);
        timePicker.setIs24HourView(true);
        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                String str = hourOfDay +"时"+minute+"分";
                Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();
            }
        });
    }
}

计时器Chronometer

android:format=“已用时间:%s” 用于设置时间的显示方式

五种常用方法
setBase() 设置计时器的起始时间
setFormat() 设置显示时间的格式
start() 指定开始计时
stop()指定停止计时
setOnChronometerTickListener()为计时器绑定时间监听器,当计时器改变时,触发改监听器

获取系统时间
SystemClock.elapsedRealtime()

计时器计时60s,后停止计时

public class MainActivity extends Activity {

  Chronometer ch;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ch = (Chronometer) findViewById(R.id.date1);
        ch.setBase(SystemClock.elapsedRealtime());//设置起始时间
        ch.setFormat("%s");//设置格式
        ch.start();//开始计时
        ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {//监听计时器改变
            @Override
            public void onChronometerTick(Chronometer chronometer) {
                if (SystemClock.elapsedRealtime() - ch.getBase() >= 60000)//计时到60s后
                {
                    ch.stop();//结束计时
                }
            }
        });
    }
}