用户人机界面可分为视图,视图容器,布局等。一个复杂的Android界面设计往往需要不同的组件组合才能实现,别介将介绍Android主要组件的特点及其功能。

  1.TextView控件

  TextView控件的使用格式:

  <TextView

  android:属性1="属性值1"

  android:属性2="属性值2" />

   TextView控件的属性

  (1)android:id="@+id/当前控件的id"-----标示当前控件的id

(2)android:layout_width="属性值"-----标示当前控件的宽度

(3)android:layout_height="属性值"-----标示当前控件的高度

  其中(2)(3)的属性值分别都有3个:fill_parent,match_parent,wrap_content;

  fill_parent:表示整个屏幕的宽度或高度

  match_parent:标示高度或者宽度与父元素相同

  wrap_content:表示控件的宽度或高度随着控件内容的大小而改变

  (4)android:text="@string/name"-----标示当前的TextView控件所要显示的内容

  (5)android:textSize="属性值"-----标示当前的控件的文本内容的大小

  (6)android:textColor="属性值(一般采用RGB颜色#******)"-----标示当前的控件的文本的颜色

  ......其它属性在之后再慢慢学习,再继续补充完善该文章

  2.EditText控件

  EditText控件的使用格式参照TextView

   EditText控件的属性包含以上的TextView所列举的所有的属性,还有比较常用的特有属性

  (1)android:hint="属性值"-----表示当前的输入框中的提示字符,当你输入新的字符时他会自动删除

  3.ImageView控件

  ImageView使用格式(同上,以下不在赘述)

  ImageView属性(包含上述的大部分属性,下面列举特有的属性,下同)

  (1)android:src="属性值(推荐以@drawable/name形式来设置属性值)"-----表示当前要显示的图片

  (2)android:background="属性值(可以为图片也可以为颜色)"-----表示当前控件的背景图片或者背景颜色

  4.Button与ImageButton控件

  拥有ImageButton所不具有的属性

  (1)android:text="属性值"-----用来显示当前按钮上的文本

  还具有与ImageButton所共有的属性

  (2)android:backgroundColor="颜色值"-----标示当前的按钮的背景颜色

  ImageButton控件看还有特有的属性

  (3)android:src="属性值"-----表示当前的控件上的图片,因为该控件本身是图片按钮。

  在使用的时候需要在Activity中设置监听器OnClickListener

  使用步骤:

    step1:初始化控件

        示例:Button bt = (Button)findViewById(R.id.button1);----findViewById返回的是一个View类,需要强制向下转型为Button(下同)

    step2:配置监听器(方法后面介绍(共三种))

        示例(匿名内部类):bt.setOnClickListener(new OnClickListener(){

           public void onClick(){

            //TODO

              }

            });

    step3:在监听器中实现要实现的操作(step2中以实现)

5.AutoCompleteTextView与MultiAutoCompleteTextview

  共同点:两个控件的功能都是实现输入文本的自动匹配

  不同点:AutoCompleteTextView是单个文本的匹配,也就是说只能在文本框内输入一个内容

  而MultiAutoCompleteTextView是多个输入的匹配,就是说当你输入一个字符串是可以进行匹配,输入结束后会添加一个

  分隔符,然后可以继续接着输入下一个字符串,而且同样可以进行匹配.

  需要设置的属性

  (1)android:completionThreshold="属性值(int型)"-----表示在输入了"属性值"位个字符后开始匹配

  在使用的时候需要设置适配器

  使用步骤:

    step1:初始化控件(同上)

    step2:需要一个适配器,一般简单的使用ArrayAdapter适配器

    step3:初始化数据资源,即设置一个数组预存储一些字符串用来和输入的字符串匹配

    step4:将当前的控件与该适配器绑定

    step5:设置分隔符

    示例:

      acTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
    ArrayAdapter<String> adapter = /*第二步*/new ArrayAdapter<String>(this,                 android.R.layout.simple_list_item_1,/*第三步*/ res);
/*第四步*/
acTextView.setAdapter(adapter);

  /*第五步(仅仅MultiAutoCompleteTextView需要)*/ macTextView.setTokenizer(new                 MultiAutoCompleteTextView.CommaTokenizer());

6.ToggleButton

    使用格式同上

    属性(包含以上的通有属性)

    (1)android:checked="true或false"-----标示当前控件是开还是关,具有开关两种状态,与其他Button的不同之处

    (2)android:textOn="属性值(一般写为"开")"-----表示当前控件处于开(checked="true"时)所显示的文本

    (3)android:textOff="属性值(一般写为"关")"-----表示当前控件处于关(checked="false"时)所显示的文本

  使用时也需要监听器

7.CheckBox

    使用格式同上

    属性(包含以上的通有属性)

    (1)android:checked=""-----意义同上述的一样,但只有选中或不选中一种状态

    (2)android:text=""-----标示当前控件后面所显示的值

    使用OnCheckedChangeListener监听器

8.RadioGroup与RadioButton

    几乎同CheckBox类似

    单不同的是Radio是单选框,也是使用OnCheckedChangeListener监听器

    一般不单独使用RadioButton,而是将RadioButton放入RadioGroup中使用作为一组按钮.

上述1,2,3,4的演示代码,包含activity代码和xml代码activity代码package com.example.helloworldtext;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener{public Button loginButton;private Button button2,button3,button4;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        /*         * 1.初始化当前所需要的控件         * 通过findViewById()方法初始化当前控件         * findViewById()方法返回的是View对象,需要向下转型为Button对象         *          * 2.设置Button的监听器         */        loginButton = (Button)findViewById(R.id.button1);                loginButton.setOnClickListener(new OnClickListener() {        /*         * 第一种方法:匿名内部类         */@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubSystem.out.println("我的Button被点击了");}});        button2 = (Button)findViewById(R.id.button2);        button3 = (Button)findViewById(R.id.button3);        button4 = (Button)findViewById(R.id.button4);                button2.setOnClickListener(new MyOnClickListener(){        @Override        public void onClick(View arg0){        super.onClick(arg0);        Toast.makeText(MainActivity.this, "button2 要执行的逻辑", 1).show();        }        });        button3.setOnClickListener(new MyOnClickListener(){        @Override        public void onClick(View arg0){        super.onClick(arg0);        Toast.makeText(MainActivity.this, "button3 要执行的逻辑", 1).show();        }        });        button4.setOnClickListener(this);    }@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubLog.i("tag", "第四种方式");}}class MyOnClickListener implements OnClickListener{@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubLog.i("tag", "父类的onclick事件");}}xml代码<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true"        android:text="@string/yourName"        android:textColor="#00ff00"        android:textSize="28sp" />    <EditText        android:id="@+id/editText1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignTop="@+id/textView1"        android:layout_toRightOf="@+id/textView1"        android:ems="10"        android:hint="@string/hintName"        android:inputType="textPersonName"        android:textSize="24sp" >        <requestFocus />    </EditText>    <Button        android:id="@+id/button1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:text="@string/buttunName"         android:background="#ff3300"/>    <Button        android:id="@+id/button3"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/button1"        android:layout_alignParentBottom="true"        android:text="按钮3" />    <Button        android:id="@+id/button2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_above="@+id/button3"        android:layout_alignLeft="@+id/button3"        android:text="按钮2" />    <Button        android:id="@+id/button4"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/button1"        android:layout_centerHorizontal="true"        android:layout_marginTop="14dp"        android:text="按钮4" />    <ImageView        android:id="@+id/imageView1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignRight="@+id/editText1"        android:layout_below="@+id/editText1"        android:background="@drawable/ic_launcher" />     <!-- 实现文本的跑马灯效果   android:ellipsize="marquee"        android:focusable="true"        android:focusableInTouchMode="true"        android:singleLine="true" -->     <com.example.helloworldtext.MarQueeTextView        android:id="@+id/textView2"                android:ellipsize="marquee"        android:focusable="true"        android:focusableInTouchMode="true"        android:singleLine="true"                android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/imageView1"        android:layout_centerHorizontal="true"        android:layout_marginTop="18dp"        android:text="我是一个TextView,我是一个TextView,我是一个TextView" />    <com.example.helloworldtext.MarQueeTextView        android:id="@+id/textView3"        android:ellipsize="marquee"        android:focusable="true"        android:focusableInTouchMode="true"        android:singleLine="true"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/textView2"        android:layout_below="@+id/textView2"        android:layout_marginTop="16dp"        android:text="我是一个TextView,我是一个TextView,我是一个TextView" /></RelativeLayout>上述5的演示代码,包含activity代码和xml代码activity代码package com.example.demon1;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.MultiAutoCompleteTextView;public class MainActivity extends Activity {private AutoCompleteTextView acTextView;private MultiAutoCompleteTextView macTextView;private String [] res = {"android1","android2","anroid3","beijing1","beijing2","beijing3","shanghai1","shanghai2","shnghai3"};/* * 第一步:初始化控件 * 第二步:构造适配器 * 第三步:初始化数据源---用来与当前的输入相匹配 * 第四步:将适配器与当前的控件相绑定 */    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        /*第一步*/        acTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);        ArrayAdapter<String> adapter  = /*第二步*/new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,/*第三步*/ res);        /*第四步*/        acTextView.setAdapter(adapter);        /*         * 第一步:初始化控件         * 第二步:需要一个适配器         * 第三步:初始化数据源与输入的数据相匹配         * 第四步:将当前控件与适配器绑定         * 第五步:设置分隔符         */        macTextView = (MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1);        macTextView.setAdapter(adapter);        macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());                    }}xml代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <AutoCompleteTextView        android:id="@+id/autoCompleteTextView1"        android:completionThreshold="3"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入查询单字符串" >        <requestFocus />    </AutoCompleteTextView>    <MultiAutoCompleteTextView        android:id="@+id/multiAutoCompleteTextView1"        android:completionThreshold="2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="输入收件人" /></LinearLayout>上述6的演示代码,包含activity代码和xml代码activity代码package com.example.demo2;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.ToggleButton;public class MainActivity extends Activity implements OnCheckedChangeListener{private ToggleButton tb;private ImageView img;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        /*         * 1.初始化控件         * 2.设置监听器         */        tb = (ToggleButton)findViewById(R.id.toggleButton1);        img = (ImageView)findViewById(R.id.imageView1);                tb.setOnCheckedChangeListener(this);            }@Overridepublic void onCheckedChanged(CompoundButton arg0, boolean arg1) {// TODO Auto-generated method stubimg.setBackgroundResource(arg1?R.drawable.on:R.drawable.off);}}xml代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <ToggleButton        android:id="@+id/toggleButton1"        android:textOff="关"        android:textOn="开"        android:layout_width="match_parent"        android:layout_height="wrap_content"        />    <ImageView        android:id="@+id/imageView1"        android:layout_width="match_parent"        android:layout_height="match_parent"        /></LinearLayout>上述7,8的演示代码,包含activity代码和xml代码activity代码package com.example.demon3;import android.os.Bundle;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.widget.CheckBox;import android.widget.Checkable;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.RadioButton;import android.widget.RadioGroup;public class MainActivity extends Activity implements android.widget.RadioGroup.OnCheckedChangeListener{private CheckBox check;private RadioGroup rg;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                check = (CheckBox)findViewById(R.id.checkBox1);        check.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton arg0, boolean arg1) {// TODO Auto-generated method stubif(arg1){Log.i("tag", "已婚");}}});                rg = (RadioGroup)findViewById(R.id.radioGroup1);        rg.setOnCheckedChangeListener(this);            }@Overridepublic void onCheckedChanged(RadioGroup arg0, int arg1) {// TODO Auto-generated method stubswitch(arg1){case R.id.radio0:Log.i("tag", "男");break;case R.id.radio1:Log.i("tag","女");break;}}}xml代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <CheckBox        android:id="@+id/checkBox1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:checked="false"        android:text="已婚" />    <RadioGroup        android:id="@+id/radioGroup1"        android:orientation="horizontal"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >        <RadioButton            android:id="@+id/radio0"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:checked="true"            android:text="男" />        <RadioButton            android:id="@+id/radio1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="女" />    </RadioGroup></LinearLayout> 

更多相关文章

  1. android更换控件默认样式
  2. ListView的分割线相关属性
  3. Android中创建对话框(确定取消对话框、单选对话框、多选对话框)
  4. Android M新控件之FloatingActionButton,TextInputLayout,Snackbar
  5. Android逆向之旅---Android中的sharedUserId属性详解
  6. 从零开始--系统深入学习android(实践-让我们开始写代码-Android框
  7. Android 属性动画(Property Animation) 源码解析 深入了解其内部实
  8. android textview xml 属性设置

随机推荐

  1. mysql多表连接查询实例讲解
  2. MySQL设置global变量和session变量的两种
  3. Linux中 MySQL 授权远程连接的方法步骤
  4. 详解grep获取MySQL错误日志信息的方法
  5. 提升MongoDB性能的方法
  6. 详解如何在阿里云上安装mysql
  7. mysql生成指定位数的随机数及批量生成随
  8. mysql-5.7.21-winx64免安装版安装--Windo
  9. 详解mysql8.0创建用户授予权限报错解决方
  10. 最新mysql-5.7.21安装和配置方法