我怎样才能样式一个Android切换?我怎样才能样式一个Android切换?(How can I s

2019-05-13 11:51发布

在API 14中引入的开关部件默认情况下,用全息主题风格。 我想它的样式略有不同,改变其颜色和外形有点为品牌的原因。 如何去这件事吗? 我知道这一定是可能的,因为我看过默认ICS和三星的TouchWiz主题之间的区别

我想我需要一些国家的图形内容和我见过几个款式http://developer.android.com/reference/android/R.styleable.html与Switch_thumb和Switch_track看起来像我可能是什么之后。 我只是不知道如何去使用它们。

我使用ActionbarSherlock如果有差别。 只有运行API V14或以上的设备将能够在所有使用过程中的一个开关。

Answer 1:

您可以定义用作背景的图形内容和切换器部分是这样的:

<Switch
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:thumb="@drawable/switch_thumb"
    android:track="@drawable/switch_bg" />

现在,你需要创建一个选择用于定义切换绘制的不同状态。 这里从Android源的副本:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/switch_thumb_disabled_holo_light" />
    <item android:state_pressed="true"  android:drawable="@drawable/switch_thumb_pressed_holo_light" />
    <item android:state_checked="true"  android:drawable="@drawable/switch_thumb_activated_holo_light" />
    <item                               android:drawable="@drawable/switch_thumb_holo_light" />
</selector>

这定义了拇指可绘制,即上方移动背景的图像。 有四种ninepatch用于滑块图片:

停用的版本(Android是使用xhdpi版)
该压滑块:
激活滑动器(接通状态):
默认版本(关闭状态):

也有在下面选择中定义的背景三种不同的状态:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/switch_bg_disabled_holo_dark" />
    <item android:state_focused="true"  android:drawable="@drawable/switch_bg_focused_holo_dark" />
    <item                               android:drawable="@drawable/switch_bg_holo_dark" />
</selector>

停用的版本:
聚焦的版本:
而默认版本:

为了有一个风格的切换只需创建此两个选择,它们设置为你的交换机视图,然后更改7张图像到您想要的风格。



Answer 2:

这是由雅努什一个真棒详细的答复。 但只是为人们谁是未来此页答案起见,更简单的方法是在http://android-holo-colors.com/从Android的资产工作室链接(死链接)

所有的工具都是一个很好的说明在AndroidOnRocks.com (网站离线)

不过,我强烈推荐大家读雅努什的答复,否则将导致理解更加清晰。 使用该工具做的东西真正的快



Answer 3:

您可以通过设置不同的颜色属性定制材料样式。 例如自定义应用程序的主题

<style name="CustomAppTheme" parent="Theme.AppCompat">
    <item name="android:textColorPrimaryDisableOnly">#00838f</item>
    <item name="colorAccent">#e91e63</item>
</style>

自定义开关主题

<style name="MySwitch" parent="@style/Widget.AppCompat.CompoundButton.Switch">
    <item name="android:textColorPrimaryDisableOnly">#b71c1c</item>
    <item name="android:colorControlActivated">#1b5e20</item>
    <item name="android:colorForeground">#f57f17</item>
    <item name="android:textAppearance">@style/TextAppearance.AppCompat</item>
</style>

您可以自定义开关跟踪和定义XML绘图资源切换拇指像下面的图像。 欲了解更多信息http://www.zoftino.com/android-switch-button-and-custom-switch-examples



Answer 4:

替代性和更容易的方式是使用形状,而不是9补丁。 它已经在这里解释说: https://stackoverflow.com/a/24725831/512011



文章来源: How can I style an Android Switch?