展会信息港展会大全

android自定义tabhost,tabcontent用intent获得
来源:互联网   发布日期:2015-10-03 11:10:18   浏览:1991次  

导读:自己改的自定义tabhost组建,效果图如左。有更好的朋友可以相互交流一下,嘿嘿。1.先上AndroidManifest.xml?xml version=1.0 encoding=utf-8?manifest xmlns:android=http://schemas.android.com/apk......

自己改的自定义tabhost组建,效果图如左。有更好的朋友可以相互交流一下,嘿嘿。

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>

2MyTab.java

package 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();

/*

* mTabhost.addTab(mTabhost .newTabSpec("选项卡1") .setIndicator(

* (LinearLayout) LayoutInflater.from(this).inflate( R.layout.tabwidget,

* null)) .setContent(R.id.linearLayout01)); mTabhost.addTab(mTabhost

* .newTabSpec("选项卡2") .setIndicator( (LinearLayout)

* LayoutInflater.from(this).inflate( R.layout.tabwidget, null))

* .setContent(R.id.linearLayout02)); mTabhost.addTab(mTabhost

* .newTabSpec("选项卡3") .setIndicator( (LinearLayout)

* LayoutInflater.from(this).inflate( R.layout.tabwidget, null))

* .setContent(R.id.linearLayout03));

*/

// 设置当前显示哪一个标签

// mTabhost.setCurrentTab(0);

// 去tabwidget白线,这个对默认主题有效

/*

* mTabhost.setPadding(mTabhost.getPaddingLeft(),

* mTabhost.getPaddingTop(), mTabhost.getPaddingRight(),

* mTabhost.getPaddingBottom() - 5);

*/

}

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.java

package 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个layout

main.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个drawable

tab_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.5张用到的图片

con_film_bottom_tab.9.png

con_film_tab_pressed.9.png

andy.jpg

bill.jpg

torvalds.jpg

6.colors.xmlstring.xml

colors.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>

赞助本站

人工智能实验室
相关内容
AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港