`
hkp2008
  • 浏览: 111170 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Android 自定义选项卡按钮和选项卡位置

阅读更多

这是前段时间做的一个项目的一部分,我把它单独提取出来!效果如下图:

 

 

可以把选项卡放在一个Activity的任何位置,自定义了选项卡按钮的背景颜色!

 

basicview_tab.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#852741"
    >
    	<!-- 导入别的xml文件 -->
	<include	layout="@layout/title_bar"/>
    <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" /> 
      <FrameLayout android:id="@android:id/tabcontent"  
      android:layout_width="fill_parent"   
      android:layout_height="wrap_content"  
      android:layout_weight="3" >  
         
      </FrameLayout>
      
       
    </LinearLayout>  
</TabHost>  
</LinearLayout>

 

自定义选项卡按钮  TabButton

 

 

public class TabButton extends LinearLayout {

	public TabButton(Context c, int drawable, String text) {
		super(c);
		LayoutInflater inflater = LayoutInflater.from(c);
		View view = inflater.inflate(R.layout.tab_button_layout, null);

		addView(view);

		TextView tv = (TextView)     view.findViewById(R.id.tab_button_text);

		ImageView iv = (ImageView) view.findViewById(R.id.tab_button_img);
		iv.setImageResource(drawable);
		tv.setText(text);
	}
}
 

 

布局 tab_button_layout.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="62dip"
    android:background="@drawable/tab_selector_bg"
    android:gravity="center"
    >
    <ImageView 
    	android:layout_width="240dip"
    	android:layout_height="wrap_content"
    	android:id="@+id/tab_button_img"
    	android:layout_gravity="center_horizontal"
    	/>
	<TextView  
	    android:layout_width="wrap_content" 
	    android:layout_height="wrap_content" 
	    android:id="@+id/tab_button_text"
	   	android:layout_gravity="center"
	   	android:textColor="#ffffff"
    />
</LinearLayout>
 

主界面代码 BasicViewTab

 

public class BasicViewTab extends TabActivity {

	private TabHost tabHost;
	private TextView textView;

	/* (non-Javadoc)
	 * @see android.app.ActivityGroup#onCreate(android.os.Bundle)
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.basicview_tab);
		
		Intent intent = new Intent(BasicViewTab.this,TabExpenses.class);
		intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		textView = (TextView)findViewById(R.id.tv_title_bar);
		textView.setText("Basic View Factor");
		
		tabHost = getTabHost(); 
		tabHost.addTab(tabHost.newTabSpec("tab1")
				.setIndicator(new TabButton(this,
						R.drawable.tabbar_icon_basic_expenses_selector,
						"Expenses"))
	        	.setContent(intent));
		tabHost.addTab(tabHost.newTabSpec("tab2")
				.setIndicator(new TabButton(this,
						R.drawable.tabbar_icon_basic_setting_selector,
						"Setting"))
	        	.setContent(new Intent(this, TabSetting.class)));

		tabHost.setCurrentTab(0);
		
		ImageView backHome = (ImageView) findViewById(R.id.btn_back_home);
		backHome.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				BasicViewTab.this.finish();
			}
		});
	}
}

 

 

附件里有完整代码!

 

分享到:
评论
6 楼 15164392341 2015-03-04  
文章和代码完全合不上
5 楼 mirzzzz 2014-10-10  
下载的东西什么玩意?!
4 楼 ixxoo 2012-08-30  
工程和效果完全不一致,请检查下吧
3 楼 wyyl1 2012-07-26  
附件里的代码和上面说的效果不一样啊,根本找不到BasicViewTab等类,请主楼上传一个对应的代码,谢谢!
2 楼 wenzhixin 2012-06-11  
谢谢分享,学习了
1 楼 nj_bing 2012-04-28  
    

相关推荐

Global site tag (gtag.js) - Google Analytics