Dav*_*own 27 android android-image android-tabhost
我在我的应用程序中使用TabHost,我在我的应用程序中使用了四个选项卡,当我选择特定选项卡而未选中时,我想在TabHost中使用不同的图像.我需要为每个特定标签使用不同的图像.
当我选择任何标签时,图像有点亮,当我切换到另一个标签时,明亮的图像变为灰色阴影.
我已经实现了TabHost,但我不知道如何更改TabHost中的图像.
任何人都可以帮助我.
谢谢,大卫
Dav*_*own 43
如果您希望为所选和未选择的状态使用不同的图像,则在drawables文件夹中为每个选项卡创建"选择器"XML文件,例如tab1_selector.xml,tab2_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/tab1_selected_image" />
<item
android:state_selected="false"
android:drawable="@drawable/tab2_unselected_image" />
</selector>
Run Code Online (Sandbox Code Playgroud)
然后使用.setIndicator方法作为上面写的bharath,你应该引用你的新xml drawable资源.
rog*_*gcg 16
首先,您必须拥有这两个图像,因为您想要从一个图像更改为另一个图像,因此您需要两个图像,并且必须将它放在三个可绘制文件夹中.
在我的例子中,我需要一个名为icon1.png和icon2.png的图像.
之后,在drawable文件夹中创建一个xml文件(所有可绘制文件夹的文件相同).这是文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use icon1 -->
<item android:drawable="@drawable/icon1"
android:state_selected="true" />
<!-- When not selected, use icon2-->
<item android:drawable="@drawable/icon2" />
</selector>
Run Code Online (Sandbox Code Playgroud)
您可以选择选择选项卡时将显示的图像.在这种情况下,会出现icon1,因为我们在标签上声明了state_selected = true.
现在,您在三个可绘制文件夹中有两个图像和xml文件.好!
现在,在类中声明选项卡,为要添加的每个选项卡添加此行.
tabHost.addTab(tabHost
.newTabSpec("one")
.setIndicator("The Tab",
res.getDrawable(R.drawable.yourxmlfile))
.setContent(new Intent(this, YourClass.class)));
Run Code Online (Sandbox Code Playgroud)
请记住,R.drawable.yourxmlfile与您在可绘制文件夹中创建的xml文件相对应.
而已!希望这对你有所帮助.
bha*_*ath 10
要设置文本和图标,我们需要使用setIndicator属性.
tabSpec.setIndicator(Char,Drawable);
firstTabSpec.setIndicator("First Tab Name", getResources().getDrawable(R.drawable.logo));
secondTabSpec.setIndicator("Second Tab Name",getResources().getDrawable(R.drawable.logo));
Run Code Online (Sandbox Code Playgroud)
使用此选项为每个选项卡设置单独的图像
创建一个选择器xml文件tabicon.xml并放入此代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/tab_enbled" android:state_selected="true"/>
<item android:drawable="@drawable/tab_default" android:state_selected="false"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
现在转到TabActivity并输入此代码
TabSpec MyTab = tabhost.newTabSpec("MyTab");
MyTab.setIndicator("", getResources().getDrawable(R.drawable.tabicon));
//note:if you give some text in setIndicator sometimes the icon will not be showed.
Intent tabIntent = new Intent(this, TabOne.class);
TWTTab.setContent(tabIntent);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43080 次 |
| 最近记录: |