我有一个tabhost,其布局如下。
https://drive.google.com/file/d/0B8nQOFcSOOboNkRFV091VVhzanc/view?usp=sharing (抱歉我无法发布照片,因为我是新用户)
我需要为所选标签设置浅蓝色边框。我如何使用浅蓝色边框选择我的选项卡?
请帮帮我,谢谢。
答案 0 :(得分:0)
首先,你需要制作一个9补丁PNG,底部有边框线。我所知道的最快方式是:http://romannurik.github.io/AndroidAssetStudio/nine-patches.html
然后你会在你的drawable文件夹上创建一个选择器xml,就像这个tab_backgrounds.xml:
<!-- Non focused states -->
<item android:drawable="@color/xlight_grey" android:state_focused="false" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@color/white_back" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/>
<!-- Focused states -->
<item android:drawable="@color/xlight_grey" android:state_focused="true" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@color/white_back" android:state_focused="true" android:state_pressed="false" android:state_selected="true"/>
<!-- Pressed -->
<!-- Non focused states -->
<item android:drawable="@color/light_grey_color" android:state_focused="false" android:state_pressed="true" android:state_selected="false"/>
<item android:drawable="@color/light_grey_color" android:state_focused="false" android:state_pressed="true" android:state_selected="true"/>
<!-- Focused states -->
<item android:drawable="@color/xlight_grey" android:state_focused="true" android:state_pressed="true" android:state_selected="false"/>
<item android:drawable="@color/light_grey_color" android:state_focused="true" android:state_pressed="true" android:state_selected="true"/>
对我来说,我只使用已在@color中定义的简单颜色,但无关紧要,您可以使用@drawable中的任何图片或@color中的颜色。或者在你的情况下,你应该使用底部边框制作9补丁。
然后你需要为你的@style定义一个样式样式,如下所示:
<style name="ThemeTabs" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarTabStyle">@style/ActionBarTabStyle.Myactionbar</item>
</style>
<style name="ActionBarTabStyle.Myactionbar" parent="@android:style/Widget.Holo.Light.ActionBar.TabView">
<item name="android:background">@drawable/tabs_backgrounds</item>
</style>
在manifest.xml上,您只需为包含选项卡的活动添加此主题。像这样:
<activity
....
android:theme="@style/ThemeTabs"
.... >
</activity>
我发现这是自定义标签的最佳方式,您可以为每个州选择一种颜色或可绘制(聚焦,点击......)
我希望这有助于:)