Android 自定义Tabhost
来源:互联网 发布:家用网络存储 编辑:程序博客网 时间:2024/05/03 19:10
转载自:http://my.oschina.net/aowu/blog/36282
首先上效果图
1.先上AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.priscilla" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/icon" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".MyTab" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".TabContent" > </activity> </application></manifest>2 MyTab.javapackage com.priscilla;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.WeakHashMap;import android.app.TabActivity;import android.content.Context;import android.content.Intent;import android.content.res.Resources;import android.os.Bundle;//import android.view.LayoutInflater;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.LinearLayout;import android.widget.TabHost;import android.widget.TabWidget;import android.widget.TextView;import android.widget.TabHost.TabSpec;public class MyTab extends TabActivity { /** Called when the activity is first created. */ private TabHost mTabhost; private TabWidget mTabWidget; private LayoutInflater mInflater; private List<TextView> mtext; private List<TabSpec> mTabSpec; private List<LinearLayout> linearLayout; private List<Intent> intent; private Context mContext; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mContext = this; mInflater = LayoutInflater.from(this); // mTabhost = this.getTabHost();// 从TabActivity上面获取放置Tab的TabHost mTabhost = (TabHost) findViewById(android.R.id.tabhost); mTabWidget = (TabWidget) findViewById(android.R.id.tabs); mTabSpec = new ArrayList<TabSpec>(); linearLayout = new ArrayList<LinearLayout>(); mtext = new ArrayList<TextView>(); intent = new ArrayList<Intent>(); creatTab(); } public void creatTab() { for (int i = 0; i < 3; i++) { mTabSpec.add(mTabhost.newTabSpec("tab" + i)); linearLayout.add((LinearLayout) mInflater.inflate( R.layout.tabwidget, null)); mtext.add((TextView) linearLayout.get(i) .findViewById(R.id.tab_name)); mtext.get(i).setText( mContext.getResources().getString(R.string.tab_name, String.valueOf(i))); mTabSpec.get(i).setIndicator(linearLayout.get(i)); //mTabSpec.get(i).setContent(list.get(i)); intent.add(new Intent(mContext, TabContent.class)); Log.v("---whty---", mTabSpec.get(i).getTag()); Bundle buddle = new Bundle(); buddle.putString("tab", mTabSpec.get(i).getTag()); intent.get(i).putExtras(buddle); mTabSpec.get(i).setContent(intent.get(i)); mTabhost.addTab(mTabSpec.get(i)); } }}2.TabContent.javapackage com.priscilla;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.widget.ImageView;import android.widget.TextView;public class TabContent extends Activity { private TextView textView; private ImageView imgView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.tabcontent); textView = (TextView) findViewById(R.id.TextView); imgView = (ImageView) findViewById(R.id.ImageView); Bundle buddle = this.getIntent().getExtras(); String flag = buddle.getString("tab"); if ("tab0".equals(flag)) { textView.setText(getResources().getString(R.string.andy)); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.andy); imgView.setImageBitmap(bitmap); } if ("tab1".equals(flag)) { textView.setText(getResources().getString(R.string.bill)); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bill); imgView.setImageBitmap(bitmap); } if ("tab2".equals(flag)) { textView.setText(getResources().getString(R.string.linux)); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.torvalds); imgView.setImageBitmap(bitmap); } }}3.3个layoutmain.xml<?xml version="1.0" encoding="utf-8"?><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" android:background="@color/wcity_normal_bg" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/con_film_bottom_tab" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" > </FrameLayout> </LinearLayout></TabHost>tabwidget.xml<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:gravity="center" > <TextView android:id="@+id/tab_name" android:layout_width="fill_parent" android:layout_height="39dp" android:layout_marginLeft="2dp" android:layout_marginRight="2dp" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:gravity="center" android:textColor="@drawable/tab_selector" android:background="@drawable/tab_bg_selector" /></LinearLayout>tabcontent.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" android:orientation="vertical" > <ImageView android:id="@+id/ImageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:scaleType="fitXY" /> <TextView android:id="@+id/TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24dip" /></LinearLayout>4.2个drawabletab_bg_selector.xml<?xml version="1.0" encoding="UTF-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/con_film_tab_pressed" /></selector>tab_selector.xml<?xml version="1.0" encoding="UTF-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="false" android:color="#ffffffff"/> <item android:state_selected="true" android:color="#ffEEC900"/></selector>
5张用到的图
andy.jpg
bill.jpg
torvalds.jpg
con_film_bottom_tab.9.png
con_film_tab_pressed.9.png
6.colors.xml string.xmlcolors.xml<?xml version="1.0" encoding="utf-8"?><resources> <color name="wcity_normal_bg">#ffe5eff4</color></resources>string.xml<?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World, my</string> <string name="app_name">myTab</string> <string name="andy">Android的创造者: Andy Rubin</string> <string name="bill">Java创造者之一: Bill Joy</string> <string name="linux">Linux之父: Linus Torvalds</string> <string name="tab_name">选项卡%1$s</string> </resources>
0 0
- android 自定义tabhost
- Android 自定义tabhost
- 【Android】自定义 Tabhost
- 【android开发】自定义TabHost
- android 自定义TabHost选择器
- Android 自定义Tabhost
- Android 自定义TabHost
- android自定义TabHost点击效果
- android tabHost选项卡自定义
- Android自定义控件之自定义tabhost
- android自定义TabHost扩展控件TabView
- android自定义TabHost扩展控件TabView
- 自定义Android TabHost的背景及文字
- android自定义TabHost扩展控件TabView
- 自定义TabHost
- 自定义TabHost
- 自定义TabHost
- 自定义TabHost
- 函数的指针参数传出时遇到的问题
- 字符编码问题
- IDEA默认快捷方式及其修改快捷键
- ios MKNetworkKit 的使用
- cxf webservice执行数据库操作
- Android 自定义Tabhost
- MFC画图入门
- JAVA WEB 获取properties文件,存放路径 及 获取路径
- 不安装oracle客户端,用plsql连接oracle
- PYTHON 学习笔记之 join 和 split 函数用法
- 学习笔记——使用Core Graphics绘图
- Linux C编程中遇到问题
- Android EditText 改变边框颜色
- linux c server and client 简单的通信