android switchcompat 颜色,如何更改SwitchCompat的颜色

AppCompat着色 attributs:

首先,你应该看看 appCompat lib文章那里有和不同的attributs,你可以设置:

colorPrimary: 应用程序的主要品牌颜色。 默认情况下,这是应用到动作栏背景的颜色。

colorPrimaryDark: 主要品牌颜色的深色。 默认情况下,这是应用到状态栏( 通过 statusBarColor ) 和导航栏( 通过 navigationBarColor )的颜色。

colorAccent: 对主要品牌颜色的明亮补充。 默认情况下,这是应用到框架控件( 通过 colorControlActivated )的颜色。

colorControlNormal: 在正常状态下应用到框架控件的颜色。

colorControlActivated: 应用到框架控件的颜色( 例如。 已经选中,switch 处于开启状态。

colorControlHighlight: 用于框架控制高光的颜色( 例如。 涟漪,列表选择器。

colorButtonNormal: 在正常状态下应用到框架按钮的颜色。

colorSwitchThumbNormal: 应用到框架 switch的颜色在它的正常状态下。 ( switch 关闭)

如果所有自定义单个 Activity 开关都是相同的:

使用上一个 attributs,你可以为每个 Activity 定义自己的主题:

@color/my_awesome_color

@color/my_awesome_darker_color

@color/accent

还有:

...

android:name=".MainActivity"

android:theme="@style/Theme.MyActivityTheme">

...

如果你想要不同的自定义开关在一个 Activity:

appcompat部件着色的作品通过拦截任何布局通货膨胀和插入一个特殊tint-aware版本的小部件取而代之( 有关它的内容,请参见 Chris Banes 文章) 你不能自定义风格适用于每个 switch 布局的xml文件。 你必须设置一个自定义上下文,使 switch 具有正确的颜色。

- -

这样做对于 pre-5.0 你需要创建一个上下文,覆盖全球的主题与海关attributs然后通过编程创建开关:ContextThemeWrapper ctw = ContextThemeWrapper(getActivity(), R.style.Color1SwitchStyle);

SwitchCompat sc = new SwitchCompat(ctw)

在 AppCompat v22.1 中,你可以使用以下 XML 将主题应用到 switch 小部件:

...

android:layout_width="wrap_content"

android:layout_height="wrap_content"

app:theme="@style/Color1SwitchStyle"/>

你的自定义 switch 主题:

@color/my_awesome_color

- -

在的Android 5.0 上,它看起来像一个新的视图属性: android:theme ( 与清单中的Activity 声明相同) 。 基于另一个 Chris Banes post,后者应该能够直接在布局xml中定义一个自定义主题:

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:theme="@style/Color1SwitchStyle"/>

( 我还没有测试我的最后一个解决方案,我将这么做,如果它不起作用,我会编辑我的答案)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值