經常使用佈局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