经常使用布局html
FrameLayout:子元素没有相对位置概念,都相对于左上角android
LinearLayout:线性布局,一个接一个,水平或垂直微信
RelativeLayout:相对布局,可相对其它子元素ide
TableLayout:水平和垂直LinearLayout的混和布局
如:动画
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"this
xmlns:tools="http://schemas.android.com/tools"spa
android:layout_width="match_parent".net
android:layout_height="match_parent" orm
tools:context="com.example.android10_4.MainActivity">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
改成竖排的话,加上:
android:orientation="vertical"
2、控件介绍
1)ListView:
private ListView lv;
privateArrayAdapter<String> dapter1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dapter1=newArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
lv=(ListView)findViewById(R.id.lv);
//配置数据
lv.setAdapter(dapter1);
dapter1.add("Hello");
dapter1.add("ByBy");
}
2)RadioGroup和RadioGroup
RadioButton和RadioGroup的关系:
1、RadioButton表示单个圆形单选框,而RadioGroup是能够容纳多个RadioButton的容器
2、每一个RadioGroup中的RadioButton同时只能有一个被选中
3、不一样的RadioGroup中的RadioButton互不相干,即若是组A中有一个选中了,组B中依然能够有一个被选中
4、大部分场合下,一个RadioGroup中至少有2个RadioButton
5、大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置
3) DatePicker和TimePicker
1、DatePicker继承自FrameLayout类,日期选择控件的主要功能是向用户提供包含年、月、日的日期数据并容许用户对其修改。若是要捕获用户修改日期选择控件中的数据事件,须要为DatePicker添加OnDateChangedListener监听器。
2、TimePicker也继承自FrameLayout类。时间选择控件向用户显示一天中的时间(能够为24小时,也能够为AM/PM制),并容许用户进行选择。若是要捕获用户修改时间数据的事件,便须要为TimePicker添加OnTimeChangedListener监听器
当须要用户选择的时候,能够提供一个下拉列表将全部可选的项列出来。供用户选择。
ProgressBar:当用户在后台执行一些任务时,在前台展现的信息,用于表示任务正在处理,请用户等待或者给用户展现处理的进度消息等
SeekBar:是相对高级的进度条,是能够拖动的,能够改变进度的一个进度条控件,好比,应用程序中用户能够对音效进行控制,这就可使用拖动条来实现
6)GridView
GridView (网格视图)是按照行列的方式来显示内容的,通常用于显示图片等内容,好比实现九宫格图,用GridView是首选,也是最简单的
7)ProgressDialog,顾名思义,就是一个进度对话框,经常使用于显示载入进度、下载进度等,合理使用ProgressDialog能增长用户体验,让用户知道如今程序所处的状态
Notification是Android中经常使用的一种通知方式,当有未读短信或未接电话的时候,屏幕状态栏就会有提示图标,这时能够下拉状态栏来读取通知。在使用微信的时(微信在后台运行),若是有新消息时便会发出声音提示,状态栏也有相应的微信提示
9)ScrollView滚动视图是指当拥有不少内容,屏幕显示不完时,须要经过滚动跳来显示的视图。ScrollView只支持垂直滚动。
10)RatingBar是SeekBar和ProgressBar的扩展,用星星来评级,使用的默认大小RatingBar时,用户能够触摸/拖动或使用键来设置评分,它有大小两种样式,其中大的只适合指示,不适合于用户交互
11)ImageSwitcher类提供了图片切换功能,经过第三方的操做,设置当前ImageSwitcher显示的图片,同时设置图片变换的动画。,控制图片展现效果的一个控件,如:幻灯片效果
12) Gallery组件主要用于横向显示图像列表,不过按常规作法。Gallery组件只能有限地显示指定的图像
13)BaseAdapter是常常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件
ListView案例:
新建项目,加进ListView
<ListView
android1:id="@+id/listView"
android1:layout_width="fill_parent"
android1:layout_height="fill_parent">
</ListView>
定义数据适配器
private ArrayAdapter<String>adapter;
3)赋值
adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
lv.setAdapter(adapter);
adapter.add("Hello 1");
adapter.add("Hello 2");
adapter.add("Hello 3");
能够运行下,比较简单。
4)数据项比较简单,只有一项,下面继续完善,建立列表项数据类
publicclass ListCellData {
public ListCellData(String userName,String sex,int age){
this.userName=userName;
this.sex=sex;
this.age =age;
}
private String userName="张三";
public String getUserName() {
returnuserName;
}
publicvoid setUserName(String userName) {
this.userName = userName;
}
public String getSex() {
returnsex;
}
publicvoid setSex(String sex) {
this.sex = sex;
}
publicint getAge() {
returnage;
}
publicvoid setAge(int age) {
this.age = age;
}
private String sex="女";
privateintage =0;
}
5)
private ArrayAdapter<ListCellData> adapter;
6)
adapter=new ArrayAdapter<ListCellData>(this,android.R.layout.simple_list_item_1);//
lv.setAdapter(adapter);
adapter.add(new ListCellData("小明","女",19));
adapter.add(new ListCellData("张三","男",29));
adapter.add(new ListCellData("李四","女",89));
7)重写显示内容,不然显示的为类名
public String toString()
{
return getUserName();
}
8)当前类为处理器,实现OnItemClickListener,程序里面有不少的部件须要点击执行动做的时候可使用implements OnClickListener
public class MainActivity extendsActionBarActivity implements OnItemClickListener
9) 重写列表项点击事件
@Override
publicvoid onItemClick(AdapterView<?>parent,View view,int position,long id)
{
ListCellDatadata=adapter.getItem(position);
Toast.makeText(this, String.format("名字:%s,性别:%s",data.getUserName(),data.getSex()), Toast.LENGTH_SHORT).show();
}
×××:
http://down.51cto.com/data/1967639
参考:
http://www.cnblogs.com/linzheng/archive/2011/01/18/1938737.html
http://www.oschina.net/question/54100_33274