標籤:
內容來源:高成珍、鐘元生《Android編程經典案例》學習筆記
表格版面配置——TableLayout
表格版面配置以行和列的方式來管理介面的布局,但並不能明確聲明包含幾行幾列。可通過TableRow來增加行,然後再在其中添加其他控制項
表格的常用屬性:
android:collapseClolumns---------隱藏指定的列
android:shrinkColumns:----------壓縮指定的列
android:stretchColumns----------擴充指定的列
android:layout_column-----------指定控制項所在TableRow 中 所處的列
android:layout_span-------------指定某一控制項所跨越的列數
自訂定義shape類型:
建立一個rect.xml文檔:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid
android:color="#00000000"/> <padding
android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp"/> <stroke android:width="2dp" android:color="#000000"/></shape>
橫屏顯示:
方式1:在AndroidManifestxml資訊清單檔中對需要橫屏顯示的Activity添加 android:screenOrientation="landscape" 屬性
方式2:在代碼中進行判斷:
if(getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
{
setRequestedOrientation(ActivityInfo.ORIENTATION_LANDSCAPE);
}
相對布局(RelativeLayout)中的常用屬性:
android:layout_centerHorizontal------設定組件是否在父容器中水平置中
android:layout_centerVertical
android:layout_centerInParent--------設定組件是否在父容器中正中央位置
android:layout_alignParentTop-------------設定組件是否與父容器的頂端對齊
android:layout_alignParentBottom
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_alignTop-------------------指定該組件位於給定的ID的控制項的上方
android:layout_alignBottom
android:layout_alignLeft
android:layout_alignRight
android:layout_toRightOf------------------指定該組件位於給定的ID的控制項的右側
android:layout_toLeftOf
android:layout_above
android:layout_below
幀布局(FrameLayout):
在布局中每個控制項獨自佔一幀或一層,該層中未包含內容的部分將是透明的。控制項添加的順序即層疊加的順序,
後面添加的控制項將會覆蓋前面的控制項。控制項的位置可以通過android:layout_grabity 的屬性來設定。通過層布局能
夠很方便地實現多個控制項疊加或漸層的效果
關於定時器Timer:
定時器建立的線程屬於子線程,不能對UI進行直接操作。Android中介面操作是非安全執行緒的,即當多個線程對
其進行操作時結可能不一致。為了避免出現這種情況,Android中規定,所有的UI操作只能放在主線程中。
Handler 訊息傳遞:
Handler可以為線程之間的通訊提供訊息傳遞,當Handler的發送訊息成功時,將調用Handler類的
handleMessage(Message msg)方法;Handler類的主要方法有:
public void handleMessage(Message msg);//---擷取並處理資訊
public final boolean sendEmptyMessage(int what);//---發送一個只含有標誌的訊息
public final boolean hasMessage(int what);//---監測訊息佇列中是否含有標記的訊息
public final boolean post(Runable r);----將一個線程添加到訊息佇列中
Message 類:
public Message();//---構造方法,推薦使用Message.Obtain();
public void copyFrom(Message msg);//---複製指定的內容
public long getWhen();//---擷取訊息發送的時間,單位為ms
public Bundle getData();//---擷取訊息中的資料
public static Message obtain();//---從訊息池中擷取一個訊息
public void setData(Bundle data);//---向訊息中寫入資料
public void setTarget(Handler target).//---設定訊息的目標對象
android 學習筆記(1)