10天學通Android開發(4)-用戶佈局與經常使用控件

  1. 經常使用佈局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)RadioGroupRadioGroup

RadioButtonRadioGroup的關係:

1RadioButton表示單個圓形單選框,而RadioGroup是能夠容納多個RadioButton的容器

2、每一個RadioGroup中的RadioButton同時只能有一個被選中

3、不一樣的RadioGroup中的RadioButton互不相干,即若是組A中有一個選中了,組B中依然能夠有一個被選中

4、大部分場合下,一個RadioGroup中至少有2RadioButton

5、大部分場合下,一個RadioGroup中的RadioButton默認會有一個被選中,並建議您將它放在RadioGroup中的起始位置

3) DatePickerTimePicker

1、DatePicker繼承自FrameLayout類,日期選擇控件的主要功能是向用戶提供包含年、月、日的日期數據並容許用戶對其修改。若是要捕獲用戶修改日期選擇控件中的數據事件,須要爲DatePicker添加OnDateChangedListener監聽器。

2、TimePicker也繼承自FrameLayout類。時間選擇控件向用戶顯示一天中的時間(能夠爲24小時,也能夠爲AM/PM制),並容許用戶進行選擇。若是要捕獲用戶修改時間數據的事件,便須要爲TimePicker添加OnTimeChangedListener監聽器

 

4) Spinner

當須要用戶選擇的時候,能夠提供一個下拉列表將全部可選的項列出來。供用戶選擇。

 

5)ProgressBarSeekBar

ProgressBar:當用戶在後臺執行一些任務時,在前臺展現的信息,用於表示任務正在處理,請用戶等待或者給用戶展現處理的進度消息等

SeekBar:是相對高級的進度條,是能夠拖動的,能夠改變進度的一個進度條控件,好比,應用程序中用戶能夠對音效進行控制,這就可使用拖動條來實現

 

6)GridView

GridView (網格視圖)是按照行列的方式來顯示內容的,通常用於顯示圖片等內容,好比實現九宮格圖,用GridView是首選,也是最簡單的

7)ProgressDialog,顧名思義,就是一個進度對話框,經常使用於顯示載入進度、下載進度等,合理使用ProgressDialog能增長用戶體驗,讓用戶知道如今程序所處的狀態

 

8)Notification

NotificationAndroid中經常使用的一種通知方式,當有未讀短信或未接電話的時候,屏幕狀態欄就會有提示圖標,這時能夠下拉狀態欄來讀取通知。在使用微信的時(微信在後臺運行),若是有新消息時便會發出聲音提示,狀態欄也有相應的微信提示

 

9)ScrollView滾動視圖是指當擁有不少內容,屏幕顯示不完時,須要經過滾動跳來顯示的視圖。ScrollView只支持垂直滾動。

 

10)RatingBarSeekBarProgressBar的擴展,用星星來評級,使用的默認大小RatingBar時,用戶能夠觸摸/拖動或使用鍵來設置評分,它有大小兩種樣式,其中大的只適合指示,不適合於用戶交互

 

11)ImageSwitcher類提供了圖片切換功能,經過第三方的操做,設置當前ImageSwitcher顯示的圖片,同時設置圖片變換的動畫。,控制圖片展現效果的一個控件,如:幻燈片效果

 

12) Gallery組件主要用於橫向顯示圖像列表,不過按常規作法。Gallery組件只能有限地顯示指定的圖像

 

13)BaseAdapter是常常用到的基礎數據適配器,它的主要用途是將一組數據傳到像ListViewSpinnerGalleryGridViewUI顯示組件

 

 

ListView案例:

  1. 新建項目,加進ListView

<ListView

       android1:id="@+id/listView"

       android1:layout_width="fill_parent"

       android1:layout_height="fill_parent">

    </ListView>

  1. 定義數據適配器

     

    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

相關文章
相關標籤/搜索