在选择Tabhost图像变化 [英] Tabhost image change on selection
问题描述
我试图改变标签的图像与背景色为图像给出
这里是什么我也做了源...
我也有这种审查
如何更改TabHost <制表符图片/ p>
问题出在哪里?
mTabHst.addTab(mTabHst.newTabSpec(\"tab_test1\").setIndicator(null,res.getDrawable(R.drawable.custom_widget_list))
.setContent(ⅰ)); mTabHst.addTab(mTabHst.newTabSpec(\"tab_test2\").setIndicator(null,res.getDrawable(R.drawable.custom_widget_trans))
.setContent(J));
INT tabCount = mTabHst.getTabWidget()getTabCount()。
对于(INT R = 0;为r tabCount; R ++){
最后查看视图= mTabHst.getTabWidget()getChildTabViewAt(R)。 如果(查看!= NULL){
//减少标签的高度
。view.getLayoutParams()*高= 0.70; }
}
mTabHst.setCurrentTab(0);}
下面是我的XML标签
&LT; TabWidget
机器人:ID =@机器人:ID /标签
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentTop =真
机器人:layout_gravity =中心
机器人:背景=#FFFFFF
机器人:tabStripEnabled =假
机器人:比重=中心/&GT;
custom_widget_list.xml
&LT;项目机器人:可绘制=@绘制/ member_pink机器人:STATE_ pressed =真正的机器人:state_selected =false的机器人:颜色=#FFFFFF &GT;&LT; /项目&GT;
&LT;项目机器人:可绘制=@绘制/用户名机器人:STATE_ pressed =false的机器人:state_selected =false的机器人:颜色=#FFFFFF&GT;&LT; /项目&GT;
&LT;项目机器人:可绘制=@绘制/ member_pink机器人:STATE_ pressed =false的机器人:state_selected =真正的机器人:颜色=#FF00FF&GT;&LT; /项目&GT;
custom_widget_trans.xml
&LT;?XML版本=1.0编码=UTF-8&GT?;
&LT;选择的xmlns:机器人=http://schemas.android.com/apk/res/android&GT;
&LT;项目机器人:可绘制=@绘制/ member_pink机器人:STATE_ pressed =真正的机器人:state_selected =false的机器人:颜色=#FFFFFF&GT;&LT; /项目&GT;
&LT;项目机器人:可绘制=@绘制/ member4机器人:STATE_ pressed =false的机器人:state_selected =false的机器人:颜色=#FFFFFF&GT;&LT; /项目&GT;
&LT;项目机器人:可绘制=@绘制/ member_pink机器人:STATE_ pressed =false的机器人:state_selected =真正的机器人:颜色=#FF00FF&GT;&LT; /项目&GT;
下面是截图:
和这里是屏幕2。
您只需要为您的选项卡中设置选择。创建一个视图,并使用您的选择。
第一步:在其中创建方法将返回查看与您选择的背景
私人浏览getTabIndicator(){
查看查看=新的视图(本);
view.setBackgroundResource(R.drawable.tab_selector);
返回视图。
}
第二步:让您在tab_selector.xml RES /文件夹绘制
&LT;?XML版本=1.0编码=UTF-8&GT?;
&LT;选择的xmlns:机器人=http://schemas.android.com/apk/res/android&GT;
&LT;! - 有源标签 - &GT;
&LT;项目的android:state_selected =真正的机器人:state_focused =假
机器人:STATE_ pressed =false的机器人:可绘制=@绘制/ tab_bg_selected/&GT;
&LT;! - 无效标签 - &GT;
&LT;项目的android:state_selected =false的机器人:state_focused =假
机器人:STATE_ pressed =false的机器人:可绘制=@绘制/ tab_bg_unselected/&GT;
&LT;! - pressed标签 - &GT;
&LT;项目的android:STATE_ pressed =真正的机器人:可绘制=@机器人:彩色/透明/&GT;
&LT;! - 选定的选项卡(使用D-PAD) - &GT;
&LT;项目的android:state_focused =真正的机器人:state_selected =真
机器人:STATE_ pressed =false的机器人:可绘制=@机器人:彩色/透明/&GT;
&LT; /选择&GT;
第三步:立即setIndicator()将自定义视图作为指标,选择将管理的背景图片
<$p$p><$c$c>mTabHst.addTab(mTabHst.newTabSpec(\"tab_test2\").setIndicator(getTabIndicator()).setContent(j));希望它会帮助你。
I tried to change tab image with background color as given in image here is the source what i have done... i have also reviewed this How to change the Tabs Images in the TabHost
where is the problem?
mTabHst.addTab(mTabHst.newTabSpec("tab_test1").setIndicator(null,res.getDrawable(R.drawable.custom_widget_list))
.setContent(i));
mTabHst.addTab(mTabHst.newTabSpec("tab_test2").setIndicator(null,res.getDrawable(R.drawable.custom_widget_trans))
.setContent(j));
int tabCount = mTabHst.getTabWidget().getTabCount();
for (int r = 0; r < tabCount; r++) {
final View view = mTabHst.getTabWidget().getChildTabViewAt(r);
if ( view != null ) {
// reduce height of the tab
view.getLayoutParams().height *= 0.70;
}
}
mTabHst.setCurrentTab(0);
}
Here is my tab xml
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_gravity="center"
android:background="#FFFFFF"
android:tabStripEnabled="false"
android:gravity="center" />
custom_widget_list.xml
<item android:drawable="@drawable/member_pink" android:state_pressed="true" android:state_selected="false" android:color="#FFFFFF"></item>
<item android:drawable="@drawable/username" android:state_pressed="false" android:state_selected="false" android:color="#FFFFFF"></item>
<item android:drawable="@drawable/member_pink" android:state_pressed="false" android:state_selected="true" android:color="#FF00FF"></item>
custom_widget_trans.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/member_pink" android:state_pressed="true" android:state_selected="false" android:color="#FFFFFF"></item>
<item android:drawable="@drawable/member4" android:state_pressed="false" android:state_selected="false" android:color="#FFFFFF"></item>
<item android:drawable="@drawable/member_pink" android:state_pressed="false" android:state_selected="true" android:color="#FF00FF"></item>
Here is Screenshot:
and here is the screen 2.
You just need to set selector for your Tabs. Create a view and use your selector.
Step1: Create method in your which will return view with your selector background.
private View getTabIndicator(){
View view = new View(this);
view.setBackgroundResource(R.drawable.tab_selector);
return view;
}
Step2: Keep your tab_selector.xml in res/drawable folder.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Active tab -->
<item android:state_selected="true" android:state_focused="false"
android:state_pressed="false" android:drawable="@drawable/tab_bg_selected" />
<!-- Inactive tab -->
<item android:state_selected="false" android:state_focused="false"
android:state_pressed="false" android:drawable="@drawable/tab_bg_unselected" />
<!-- Pressed tab -->
<item android:state_pressed="true" android:drawable="@android:color/transparent" />
<!-- Selected tab (using d-pad) -->
<item android:state_focused="true" android:state_selected="true"
android:state_pressed="false" android:drawable="@android:color/transparent" />
</selector>
Step3: Now setIndicator() will have custom view as indicator and selector will manage background images.
mTabHst.addTab(mTabHst.newTabSpec("tab_test2").setIndicator(getTabIndicator()).setContent(j));
Hope it will help you..
这篇关于在选择Tabhost图像变化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!