[Android常用控件整理]
TextView:显示文本框控件
常用属性:
android:id—控件的id
android:layout_width—控件的宽度
android:layout_height—控件的高度
android:text—文本内容
android:textSize—文本大小
android:textColor—文本颜色
android:background—控件背景
EditText:输入文本框
常用属性:
android:id—控件的id
android:layout_width—控件的宽度
android:layout_height—控件的高度
android:text—文本内容
android:textSize—文本大小
android:textColor—文本颜色
android:background—控件背景
android:hint—输入提示文本
android:inputType—输入文本类型
android:layout_width 和android:layout_height 的属性值:
wrap_content:包裹实际文本内容
match_parent:当前控件铺满父类容器(2.3api之后添加的一个属性值)
fill_parent:当前控件铺满父类容器(在2.3api之前的一个属性值)
android:textSize的属性值:
android:textSize=”28sp”(文字一般用sp为单位)
android:textColor的属性值:
android:textColor=”#000000”(用颜色的十六进制表示)
android:text 和 android:hint同时存在时,只显示text内容,不显示提示内容。
代码实例:
<TextView android:id="@+id/name_textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓名:" android:textSize="28sp" android:textColor="#000000" /> <EditText android:id="@+id/name_editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="70dp" android:hint="请输入姓名,如:张飞" > <requestFocus /></EditText>
效果图如下:
ImageView:是显示图片的一个控件
常用属性:
android:src=”@drawable/ic_launcher”—ImageView的内容图像
android:background=”@drawble/ic_launcher”—ImageView背景图片
android:background=”#00ff00”—ImageView的RGB颜色
android:src 和 android:background设置控件图片,后者会被拉伸。
在布局上拖一个ImageView控件,如图所示,这里我们选工程带的图片。
如图:
代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.imageviewtest.MainActivity" tools:ignore="MergeRootFrame" > <ImageView android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" android:background="#ccc" /> <ImageView android:id="@+id/imageView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" /> <ImageView android:id="@+id/imageView3" android:layout_width="match_parent" android:layout_height="20dp" android:background="#0f0f0f" /></LinearLayout>
其中在LinearLayout布局中,android:orientation="vertical"设置垂直排列。
Button 和 ImageButton
Button:按钮
常用属性:
android:id=”@+id/button1”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:text=”Button”
ImageButton:图片按钮
常用属性:
android:id=”@+id/imageButton1”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:src=”@drawableabc_ab_share_pack_holo_light”
共有的特性:都可以作为一个按钮产生点击事件
不同点:
1.Button有text的属性,ImageButton没有
2.ImageButton有src属性,Button没有
产生明显的点击效果。
实例代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.buttonandimagebutton.MainActivity" tools:ignore="MergeRootFrame" > <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/button_name" /> <ImageButton android:id="@+id/imageButton1" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /></LinearLayout>
效果图:
可以在ImageButton控件中添加background属性,可以与src同时存在。
补充:这里Button控件的text属性,是在value/string.xml文件中声明的,这种方式是推荐使用的。
总结:
1.Button:可以设置文本内容一个按钮
2.ImageButton:不可以设置文本内容,background以及sre添加一个image,当前图片可以做一个有文本内容图片
onClick事件
1.Button和ImageButton都拥有一个onClick事件。
通过自身的.setOnClickListener(OnClickListener)方法添加点击事件。
2.所以的控件都有一个onClick的事件,不仅仅Button和ImageButton拥有。
3.通过点击事件的监听可以实现点击按钮之后要发生什么动作。
监听事件实现的三种写法
1.匿名内部类的实现。
a.初始化当前所需要控件,定义变量,如:
private Button loginButton;
并赋值:
loginButton =(Button)findViewById(R.id.button1);
这里findViewById(R.id.button1)的返回值是view对象,必须向下转型。
R.id.button1是在gen/R文件中生成的唯一的id号,我们通过android:id属性来指定。
b.设置Button的监听器。通过监听器实现我们点击Button要操作的事情。
loginButton.setOnClickListener(newOnClickListener() {
@Override
public void onClick(View arg0) {
//在当前onClick()方法中监听点击Button的动作,如:
System.out.println(“我的Button被点击了”);//在LogCat输出语句
}
});
代码如下:
private Button loginButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);loginButton = (Button)findViewById(R.id.button1);loginButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {//在当前onClick()方法中监听点击Button的动作,如:System.out.println("我的Button被点击了");//在LogCat输出语句}});}
效果图:
1.独立类的实现。
点击事件外部类的写法和作用:有多个按钮要实现同一个功能,可以在父类的onClick事件实现相同的这个功能,在自身onClick事件实现特有功能。
a.定义类:
class MyOnClickListener implements OnClickListener {
@Override
public voidonClick(View v) {
Log.i(“tag”, “父类的onClick事件”);
//v.setAlpha(0.5f);//设置按钮透明度
}
}
b.button1.setOnClickListener(newMyOnClickListener() {
@Override
public void onClick(View v) {
super.onClick(v);
//功能
Toast.makeText(MainActivity.this,“button1要执行的逻辑”,1).show();
}
});
button2.setOnClickListener(new MyOnClickListener() {
@Override
public void onClick(View v) {
super.onClick(v);
//功能
Toast.makeText(MainActivity.this,“button2要执行的逻辑”,1).show();
}
});
代码实现:
在默认布局文件中代码如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.buttonoutclassonclicklistener.MainActivity" tools:ignore="MergeRootFrame" > <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="按钮1" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="按钮2" /></LinearLayout>
在MainActivity.java中代码如下:
package com.example.buttonoutclassonclicklistener;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v7.app.ActionBarActivity;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;import android.widget.Toast;//实现的外部类class MyOnClickListener implements OnClickListener {@Overridepublic void onClick(View v) {Log.i("tag", "父类的onClick事件");v.setAlpha(0.5f);//设置按钮透明度}}public class MainActivity extends ActionBarActivity {private Button button1;private Button button2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//代码1:button1 = (Button) findViewById(R.id.button1);button2 = (Button) findViewById(R.id.button2);button1.setOnClickListener(new MyOnClickListener() {@Overridepublic void onClick(View v) {super.onClick(v);//功能Toast.makeText(MainActivity.this, "button1要执行的逻辑",1).show();}});button2.setOnClickListener(new MyOnClickListener() {@Overridepublic void onClick(View v) {super.onClick(v);//功能Toast.makeText(MainActivity.this, "button2要执行的逻辑",1).show();}});if (savedInstanceState == null) {getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/** * A placeholder fragment containing a simple view. */public static class PlaceholderFragment extends Fragment {public PlaceholderFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;}}}
效果图:
1.实现接口的方式实现。
button.setOnClickListener(this);
实现接口:
@Override
public void onClick(View v) {
Log.i(“tag”, “第三种方式实现”);
}
package com.example.button3;import android.app.Activity;import android.app.Fragment;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener {private Button button1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1 = (Button) findViewById(R.id.button1);button1.setOnClickListener(this);if (savedInstanceState == null) {getFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/** * A placeholder fragment containing a simple view. */public static class PlaceholderFragment extends Fragment {public PlaceholderFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;}}@Overridepublic void onClick(View arg0) {Log.i("tag", "第三种方式实现");}}
AutoCompleteTextView:动态匹配输入的内容,如百度搜索引擎的提示信息
独特属性:
android:completionThreshold=”2”—设置输入多少字符时自动匹配
示例代码:
<AutoCompleteTextView android:id="@+id/autoCompleteTextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="36dp" android:ems="10" android:completionThreshold="3" android:hint="请输入你要搜索的关键词" > <requestFocus /></AutoCompleteTextView>
public class MainActivity extends Activity {private AutoCompleteTextView acTextView;//第三步:初始化数据源---这数据源去匹配文本框输入的内容private String[] res = {"beijing1", "beijing2", "beijing3", "shanghai1", "shanghai2"};@Overrideprotected 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);//第四步:将adpter与当前AutoCompleteTextView绑定acTextView.setAdapter(adapter);}
MultiAutoCompleteTextView控件:
功能:可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配,可用在发短信,发邮件时选择联系人这种类型当中。
独特属性:
android:completionThreshold=”2”– 设置输入多少字符时自动匹配
设置分隔符:
mtxt.setTokenizer(newMultiAutoCompleteTextView.CommaTokenizer());
【未完待续...】更多相关文章
- android中的style部分属性值介绍
- android:ellipsize的用法以及跑马灯实现 marquee
- android Style属性介绍
- Android:EditText 多行显示及所有属性
- Android(安卓)layout属性大全
- Android(安卓)layout属性大全
- android inputtype属性
- Android开发_TextView跑马灯
- Android(安卓)textAppearance的属性设置及TextView属性详解