FoY*_*FoY 5 android android-switch material-design android-5.0-lollipop
我一直在努力寻找资源,解释如何Switch在Material Design主题中设置按钮的样式.
此链接确实解释了颜色值和美学细节,但没有说明如何通过在Material设计主题中设置某些属性来实现此目的.
http://www.google.com/design/spec/components/switches.html#switches-switch
如果没有直接的方法来设置Switch的颜色,那么我可以使用哪些drawable来制作我自己的版本?
JDJ*_*JDJ 17
我一直试图找到资源来解释我如何在Material Design主题中设置切换按钮的样式.
现在使用新的appcompat-v7:21,着色小部件非常简单.
只要您使用appcompat-v7:21,就可以用Switch小SwitchCompat部件替换所有旧小部件.所以在你的xml布局中,不要使用旧Switch标签,而是使用android.support.v7.widget.SwitchCompat.
然后在styles.xml中,确保您的应用程序的父主题是一个Theme.AppCompat主题,如Theme.AppCompat.Light.
最后,关键是指定自己的值colorAccent:
<item name="colorAccent">@color/my_fancy_color</item>
您指定的颜色colorAccent将被用来上色的小部件在您的应用程序,如SwitchCompats,EditTexts,RadioButtons,等.
所以你的styles.xml可能看起来像:
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
    <!-- colorPrimary is used for the default action bar background -->
    <item name="colorPrimary">@color/color_primary</item>
    <!-- colorPrimaryDark is used to color the status bar -->
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <!-- 
         colorAccent is used as the default value for colorControlActivated
         which is used to color widgets 
    -->
    <item name="colorAccent">@color/my_fancy_color</item>
    <!-- You can also set colorControlNormal, colorControlActivated
         colorControlHighlight & colorSwitchThumbNormal. -->
</style>
我可以使用哪些drawables来制作我自己的版本?
我不建议直接改变drawable,但它们位于
sdk/platforms/android-21/data/res/drawable-XXXX
并调用文件
btn_switch_to_off_mtrl_XXXXX.9.png
btn_switch_to_on_mtrl_XXXXX.9.png
switch_track_mtrl_alpha.9.png
完成JDJ的答案:
AppCompat中的drawable-hdpi中存在损坏文件的错误:
https://code.google.com/p/android/issues/detail?id=78262
要修复它,只需使用这两个文件覆盖它:
https://github.com/lopespm/quick-fix-switchcompat-resources
将它们添加到drawable-hdpi目录中.
XML
<android.support.v7.widget.SwitchCompat
android:id="@+id/dev_switch_show_dev_only"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
Java中没有必要
| 归档时间: | 
 | 
| 查看次数: | 12807 次 | 
| 最近记录: |