首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

兑现类似微博的BottomBar

2013-04-21 
实现类似微博的BottomBar主要布局:package com.test.activityimport android.app.TabActivityimport and

实现类似微博的BottomBar

主要布局:

package com.test.activity;import android.app.TabActivity;import android.content.Intent;import android.os.Bundle;import android.view.Window;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;import android.widget.TabHost;import com.test.testbottombar.R;/** * MainTabAcitivity * @author LinHang_He * */public class MainTabActivity extends TabActivity implements OnCheckedChangeListener{private RadioGroup mainTab;private TabHost mTabHost;//内容Intentprivate Intent mHomeIntent;private Intent mNewsIntent;private Intent mInfoIntent;private Intent mSearchIntent;private Intent mMoreIntent;private final static String TAB_TAG_HOME="tab_tag_home";private final static String TAB_TAG_NEWS="tab_tag_news";private final static String TAB_TAG_INFO="tab_tag_info";private final static String TAB_TAG_SEARCH="tab_tag_search";private final static String TAB_TAG_MORE="tab_tag_more";    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.main);        mainTab=(RadioGroup)findViewById(R.id.main_tab);        mainTab.setOnCheckedChangeListener(this);        prepareIntent();        setupIntent();                         }    /**     * 准备tab的内容Intent     */private void prepareIntent() {//mHomeIntent=new Intent(this, HomeActivity.class);mHomeIntent=new Intent(this, FriendsDynamicActivity.class);mNewsIntent=new Intent(this, InfoActivity.class);mInfoIntent=new Intent(this, FriendsOrGroupActivity.class);mSearchIntent=new Intent(this,SquareActivity.class);mMoreIntent=new Intent(this, MoreActivity.class);}/** *  */private void setupIntent() {this.mTabHost=getTabHost();TabHost localTabHost=this.mTabHost;localTabHost.addTab(buildTabSpec(TAB_TAG_HOME, R.string.main_home, R.drawable.icon_1_n, mHomeIntent));localTabHost.addTab(buildTabSpec(TAB_TAG_NEWS, R.string.main_news, R.drawable.icon_2_n, mNewsIntent));localTabHost.addTab(buildTabSpec(TAB_TAG_INFO, R.string.main_my_info, R.drawable.icon_3_n, mInfoIntent));localTabHost.addTab(buildTabSpec(TAB_TAG_SEARCH, R.string.menu_search, R.drawable.icon_4_n, mSearchIntent));localTabHost.addTab(buildTabSpec(TAB_TAG_MORE, R.string.more, R.drawable.icon_5_n, mMoreIntent));}private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon,final Intent content) {return this.mTabHost.newTabSpec(tag).setIndicator(getString(resLabel),getResources().getDrawable(resIcon)).setContent(content);} public void onCheckedChanged(RadioGroup group, int checkedId) {switch(checkedId){case R.id.radio_button0:this.mTabHost.setCurrentTabByTag(TAB_TAG_HOME);break;case R.id.radio_button1:this.mTabHost.setCurrentTabByTag(TAB_TAG_NEWS);break;case R.id.radio_button2:this.mTabHost.setCurrentTabByTag(TAB_TAG_INFO);break;case R.id.radio_button3:this.mTabHost.setCurrentTabByTag(TAB_TAG_SEARCH);break;case R.id.radio_button4:this.mTabHost.setCurrentTabByTag(TAB_TAG_MORE);break;}}        }

?创建需要的5个Activity

?

布局文件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="#ffffff"    >       <LinearLayout    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent">    <FrameLayout     android:id="@android:id/tabcontent"    android:layout_width="fill_parent"    android:layout_height="0.0dip"    android:layout_weight="1.0"/>    <TabWidget     android:id="@android:id/tabs"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_weight="0.0"    android:visibility="gone"/>    <RadioGroup    android:id="@+id/main_tab"    android:background="@drawable/maintab_toolbar_bg"    android:orientation="horizontal"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:gravity="center_vertical"    android:layout_gravity="bottom">    <RadioButton     android:layout_marginTop="2.0dip"    android:text="@string/main_home"    android:drawableTop="@drawable/icon_1_n"    android:id="@+id/radio_button0"    style="@style/main_tab_bottom"/>    <RadioButton     android:layout_marginTop="2.0dip"    android:text="@string/main_news"    android:drawableTop="@drawable/icon_2_n"    android:id="@+id/radio_button1"    style="@style/main_tab_bottom"/>    <RadioButton     android:layout_marginTop="2.0dip"    android:text="@string/main_my_info"    android:drawableTop="@drawable/icon_3_n"    android:id="@+id/radio_button2"    style="@style/main_tab_bottom"/>    <RadioButton     android:layout_marginTop="2.0dip"    android:text="@string/menu_search"    android:drawableTop="@drawable/icon_4_n"    android:id="@+id/radio_button3"    style="@style/main_tab_bottom"/>    <RadioButton     android:layout_marginTop="2.0dip"    android:text="@string/more"    android:drawableTop="@drawable/icon_5_n"    android:id="@+id/radio_button4"    style="@style/main_tab_bottom"/>    </RadioGroup>    </LinearLayout></TabHost>

?创建drawable文件夹,添加home_btn_bg.xml

?

<?xml version="1.0" encoding="UTF-8"?><selector  xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_focused="true" android:state_enabled="true" android:state_pressed="false" android:drawable="@drawable/home_btn_bg_d"/><item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/home_btn_bg_d" />     <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/home_btn_bg_d" />    <item android:drawable="@drawable/transparent" /></selector>

?在values文件夹下添加dimens.xml

<?xml version="1.0" encoding="utf-8"?><resources><dimen name="bottom_tab_padding_drawable">2.0dip</dimen><dimen name="bottom_tab_padding_up">5.0dip</dimen><dimen name="bottom_tab_font_size">10.0dip</dimen></resources>

??在values文件夹下添加drawables.xml

<?xml version="1.0" encoding="utf-8"?><resources><item type="drawable" name="transparent">#00000000</item></resources>

?strings.xml

<resources>    <string name="app_name">TestBottomBar</string>    <string name="main_home">首页</string>    <string name="main_news">新闻</string>    <string name="main_my_info">信息</string>    <string name="menu_search">搜索</string>    <string name="more">更多</string></resources>

?styles.xml

<resources>    <style name="AppTheme" parent="android:Theme.Light" />    <style name="main_tab_bottom">        <item name="android:textSize">@dimen/bottom_tab_font_size</item>        <item name="android:textColor">#ffffffff</item>        <item name="android:ellipsize">marquee</item>        <item name="android:gravity">center_horizontal</item>        <item name="android:background">@drawable/home_btn_bg</item>        <item name="android:paddingTop">@dimen/bottom_tab_padding_up</item>        <item name="android:layout_width">fill_parent</item>        <item name="android:layout_height">wrap_content</item>        <item name="android:button">@null</item>        <item name="android:singleLine">true</item>        <item name="android:drawablePadding">@dimen/bottom_tab_padding_drawable</item>        <item name="android:layout_weight">1.0</item>    </style></resources>

?

?

?

?

?

热点排行