我的标签栏图标不会显示
TabHost tabHost = getTabHost();
TabSpec barcodeInsertSpec = tabHost.newTabSpec("Barcode Insert");
barcodeInsertSpec.setIndicator("Barcode Insert", getResources().getDrawable(R.drawable.home2));
barcodeInsertSpec.setContent(new Intent(getBaseContext(), BarcodeInsertActivity.class));
tabHost.addTab(barcodeInsertSpec);
抽拉/ home2.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When not selected, use that-->
<item android:drawable="@drawable/home22" />
</selector>
并将图片放入三个不同大小的文件夹(48x48,32x32,24x24)drawable-hdpi ,drawable-ldpi,... as .png
喜欢drawable-hdpi / home22.png
答案 0 :(得分:1)
试试这段代码
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/button0_click"></item>
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/button0_click"></item>
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/button0_click" />
<item
android:drawable="@drawable/button0"></item>
</selector>
答案 1 :(得分:0)
这段代码对我有用:)
Resources res=getResources();
TabHost Tabs = (TabHost) findViewById(R.id.your_id);
Tabs.setup();
TabHost.TabSpec spec;
spec = Tabs.newTabSpec("tag1");
spec.setContent(R.id.tab1);
spec.setIndicator("Home", res.getDrawable(R.drawable.home_icon));
Tabs.addTab(spec);
答案 2 :(得分:0)
嗨像这样使用drawable选择器文件。
<?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/select" />
<item
android:state_selected="false"
android:drawable="@drawable/deselct" />
</selector>
答案 3 :(得分:0)
我使用Xamarin时遇到了同样的问题。
这是一个黑客解决方案,显示图标但不显示文本(看起来像一个android缺陷):
这个解决方案显示了这两个,但它给我的应用程序范围的样式,这表明我可能会设置样式覆盖:
击>编辑2013年10月10日 - 我让它在c#中工作了! 在java
中做同样的事情应该是直截了当的我能够获得标签,显示包含代码和自定义样式的图标。见下文
<强> tab_indicator_holo.xml:强>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="@dimen/tab_host_default_height"
android:orientation="horizontal"
style="@style/TabBlood"
android:gravity="center">
<ImageView
android:id="@android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:visibility="visible"
android:contentDescription="@null" />
<TextView
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
style="@style/TabTextBlood" />
</LinearLayout>
我的活动OnCreate:
...
var spec = this.TabHost.NewTabSpec(tag);
var drawableIcon = Resources.GetDrawable(drawableId);
View tabIndicator = LayoutInflater.From(this).Inflate(Resource.Layout.tab_indicator_holo, this.TabHost.TabWidget, false);
TextView title = tabIndicator.FindViewById<TextView>(Android.Resource.Id.Title);
ImageView img = tabIndicator.FindViewById<ImageView>(Android.Resource.Id.Icon);
title.Text = label;
img.SetImageDrawable(drawableIcon);
spec.SetIndicator(tabIndicator);
spec.SetContent(intent);
this.TabHost.AddTab(spec);
答案 4 :(得分:0)
试试这个。
TabHost th = getTabHost();
TabHost.TabSpec sp;
sp=th.newTabSpec("tab 1");
sp.setIndicator("Home");
sp.setContent(new Intent(this, Welcome.class));
th.addTab(sp);
tabhost.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.YOURIMAGE);
*您还可以使用自定义项目选择器代替drawable来制作聚焦和按下的效果。 干杯!