1,TabHost
提供 Tab 页的窗口视图容器,它有俩个 children,一组是用户可以选择指定 Tab 页 的标签,另一组是 FrameLayout 用来显示该 Tab 页的内容。个别元素通常控制使用这个 容器对象,而不是设置在子元素本身的值。
常用方法:addTab(TabHost.TabSpec tabSpec):添加一项 Tab 页
clearAllTabs():清除所有与之相关联的 Tab 页.
getCurrentTab():返回当前 Tab 页.
getTabContentView():返回包含内容的 FrameLayout
newTabSpec(String tag):返回一个与之关联的新的 TabSpec
实例:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/framebackground"> <!-- 第一个Tab中得layout --> <LinearLayout android:id="@+id/frist_tab_linearlayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center_vertical" android:layout_marginTop="100dp" android:text="@string/love" android:textColor="#000000" android:textSize="20sp" /> <TextView android:layout_width="220dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center_vertical" android:paddingTop="17dp" android:text="@string/love_text" android:textColor="#000000" android:textSize="15sp" /> </LinearLayout> <!-- 第二个Tab中得layout --> <LinearLayout android:id="@+id/second_tab_linearlayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center_vertical" android:layout_marginTop="100dp" android:text="@string/friendship" android:textColor="#000000" android:textSize="20sp" /> <TextView android:layout_width="220dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center_vertical" android:paddingTop="17dp" android:text="@string/friendship_text" android:textColor="#000000" android:textSize="15sp" /> </LinearLayout> <!-- 第三个Tab中得layout --> <LinearLayout android:id="@+id/third_tab_linearlayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center_vertical" android:layout_marginTop="100dp" android:text="@string/kinship" android:textColor="#000000" android:textSize="20sp" /> <TextView android:layout_width="220dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center_vertical" android:paddingTop="17dp" android:text="@string/kinship_text" android:textColor="#000000" android:textSize="15sp" /> </LinearLayout> </FrameLayout>
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:id="@+id/love_group"> <item android:id="@+id/love_item" android:icon="@drawable/aiqing" android:title="Love"> </item> </group> </menu>
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:id="@+id/kinship_group"> <item android:id="@+id/kinship_item" android:icon="@drawable/qinqing" android:title="KinShip"> </item> </group> </menu>
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:id="@+id/friendship_group"> <item android:id="@+id/friendship_item" android:icon="@drawable/youqing" android:title="FriendShip"> </item> </group> </menu>
package net.csdn.blog.androidtoast;
import android.app.TabActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.widget.TabHost;
public class TabHostExampleActivity extends TabActivity {
TabHost mTabHost;
int mMenuTag=0;
Menu mMenu;
static final int mMenuResources[] = {
R.layout.love_menu,
R.layout.friendship_menu,
R.layout.kinship_menu
};
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//获取TabHost
mTabHost=this.getTabHost();
//过滤出TabHost布局
LayoutInflater.from(this).inflate(R.layout.main, mTabHost.getTabContentView(), true);
//为TabHost设置背景颜色
mTabHost.setBackgroundColor(Color.argb(100, 30, 80, 160));
//增加三个选型卡 并设置其图标及绘制布局
mTabHost.addTab(mTabHost.newTabSpec("One")
.setIndicator("", getResources().getDrawable(R.drawable.aiqing))
.setContent(R.id.frist_tab_linearlayout));
mTabHost.addTab(mTabHost.newTabSpec("Two")
.setIndicator("", getResources().getDrawable(R.drawable.youqing))
.setContent(R.id.second_tab_linearlayout));
mTabHost.addTab(mTabHost.newTabSpec("Three")
.setIndicator("", getResources().getDrawable(R.drawable.qinqing))
.setContent(R.id.third_tab_linearlayout));
//添加监听事件
mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
if (tabId.equals("One")) {
mMenuTag = 1;
}
if (tabId.equals("Two")) {
mMenuTag = 2;
}
if (tabId.equals("Three")) {
mMenuTag = 3;
}
if (mMenu != null) {
onCreateOptionsMenu(mMenu);
}
}
});
}
//创建对应的菜单项
@Override
public boolean onCreateOptionsMenu(Menu menu) {
mMenu = menu;
mMenu.clear();
//获取菜单过滤器
MenuInflater inflater = getMenuInflater();
switch (mMenuTag) {
case 1:
//动态加入数组中对应的menu.xml
inflater.inflate(mMenuResources[0], menu);
break;
case 2:
inflater.inflate(mMenuResources[1], menu);
break;
case 3:
inflater.inflate(mMenuResources[2], menu);
break;
default:
inflater.inflate(mMenuResources[0], menu);
break;
}
return super.onCreateOptionsMenu(menu);
}
}
2,Gallery 画廊用于展示图片。常用于图片展示。效果很炫。以下是扩展了Gallery实现了3D效果。废话少说代码:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/default_background" > <net.csdn.blog.androidtoast.GalleryFlow android:id="@+id/pic_gallery" android:layout_width="fill_parent" android:layout_height="380dp" android:layout_centerInParent="true"/> </RelativeLayout>
由于JAVA代码太多 就不上传了。需要的下载看把 直接上效果图吧