編輯:Android開發實例
android裡提供了tab顯示的機制。既可以繼承TabActivity類也可以自己直接在普通的Activity中實現。下面講講這2種方法的相似和不同。
1.繼承TabActivity
首先需要得到一個TabHost對象,在TabActivity中可以通過getTabHost()方法來獲得TabHost對象,getTabHost的源碼如下:
public TabHost getTabHost() {
ensureTabHost();
return mTabHost;
}
private void ensureTabHost() {
if (mTabHost == null) {
this.setContentView(com.android.internal.R.layout.tab_content);
}
}
事實上在TabActivity中已經給你指定好了一個layout來專門用作tab顯示,com.android.internal.R.layout.tab_content的原型如下:
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="0" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="0dip"
android:layout_weight="1"/>
</LinearLayout>
</TabHost>
這裡面必須包含3個元素,LinearLayout,TabWidget以及FrameLayout,我猜測TabWidget應該就是顯示標簽的組件,而FrameLayout是可以重疊覆蓋的,因而當你選擇某個標簽的時候,其相應的內容就顯示到framelayout裡面,那麼之前的標簽頁就被覆蓋掉了。
然後你需要在framelayout上面來添加你自己想顯示的view,通常的方式是你自己定義一個layout,然後inflate他並把framelayout作為他的rootgroup,
LayoutInflater inflater_tab1 = LayoutInflater.from(this);
inflater_tab1.inflate(R.layout.tab1, mTabHost.getTabContentView());
最後需要在TabHost中添加你的Tab
調用mTabHost.addTab方法即可,這個方法能夠在tab中顯示文字,圖片以及tab下顯示的視圖。
2.在Activity中實現
這裡你需要自己來實現TagHost的layout,可以在layout.main中添加TabHost元素,但是注意的是,必須實現上面所說的3個組件,而且注意id應該是系統所指定的那些id。而余下的事情就和上面類似了
在android開發的過程中我們經常因為沒有好的美工圖片失真,這樣使界面看起來要遜色很多,有的時候可能我們會想在drawable-hdpi,ldpi,mdpi下放
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩