相关疑难解决方法(0)

如何从AppCompat库更改SwitchCompat的颜色

我的应用程序中有一些不同颜色的开关控件,并且我使用多个自定义可绘制选择器来更改颜色.

随着AppCompat v21库的发布,引入了一个新的android.support.v7.widget.SwitchCompat控件.

是否可以在没有客户可绘制选择器的情况下以编程方式更改SwitchCompat的颜色,但是使用XML或代码?

android switchcompat

124
推荐指数
5
解决办法
10万
查看次数

TextView背景颜色的选择器

我试图TextView在用户触摸它时更改Android 小部件的背景颜色.我已经为此创建了一个选择器,它存储在res/color/selector.xml大致看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:color="@color/semitransparent_white"
        />
    <item
        android:color="@color/transparent"
        />
</selector>
Run Code Online (Sandbox Code Playgroud)

clickable该属性TextView就是true那的利益,以备不时之需.

当我将此选择器分配给TextViewas时android:background="@color/selector",我在运行时遇到以下异常:

ERROR/AndroidRuntime(13130):引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#6:标记需要一个'drawable'属性或定义drawable的子标记

当我将属性更改为drawable时,它可以工作,但结果看起来完全错误,因为ID似乎被解释为图像引用而不是颜色引用(如"drawable"所示).

令我困惑的是,我可以直接设置颜色参考,例如"@ color/black"作为背景属性.这是按预期工作的.使用选择器不起作用.

我也可以使用选择器作为textColor没有问题.

TextView在Android中应用背景颜色选择器的正确方法是什么?

android

120
推荐指数
5
解决办法
12万
查看次数

在Android Switch组件上定义自定义样式(主题)

我是Android开发的新手,也是Android主题/定制的新手,看起来是一个广泛的主题......

我正在尝试给我的Switch组件一个特殊的外观和感觉,但我无法实现我想要的东西,avan在互联网上查找了很多资源.

这真让我抓狂!!
在此先感谢您的帮助,Android大师!

上下文

我在一个现有的android应用程序(v1)上工作,它是minSdkVersion ="8".

因此,应用程序使用第三方库来获取操作栏(ActionBar Sherlock)和开关(SwitchCompatLibrary):

今天,我们正在制作v2版本,minSdkVersion ="14".

我们的客户还要求我们更改默认的开关外观.

目标是使用thiese开关:
在此输入图像描述 在此输入图像描述

这看起来真的像最新的材料设计开关,但用橙色代替"绿 - 蓝"颜色,就像这里一样.

约束

由于我们现在是minSdk 14,我们可以删除2个库"ActionBarSherlock"和"SwitchCompatLibrary",但这不是一个选项.的确,我们没有时间......

实际上,我尝试在我的项目的gradle文件appcompat-v7中添加依赖项,以便尝试使用带有材质主题的本机开关组件(请参阅此处),但这会因为重复的属性定义而提到错误,并提到了2个库以上.所以我不能用它,我不确定这应该有用......

dependencies {
(...)

compile project(':actionbarsherlock')
compile project(':switchCompatLibrary')
compile files('libs/android-support-v4.jar')

// incompatible avec actionbarsherlock and SwitchCompatLibrary...
// compile "com.android.support:appcompat-v7:22.0.+" 

(...)
}
Run Code Online (Sandbox Code Playgroud)

现有代码

所以这是执行代码.

在我的layout.xml文件中,我使用SwitchCompatLibrary开关:

        <de.ankri.views.Switch
            android:id="@+id/switchButtonNotification"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true" />
Run Code Online (Sandbox Code Playgroud)

在我的themes.xml文件中:

<style name="Theme.Orange" parent="@style/Theme.Sherlock">
    ...
    <!-- Theme switch with SwitchCompatLibrary -->
    <item name="switchStyle">@style/switch_light</item>
    <item name="textAppearance">@style/TextAppearance</item>
</style>
Run Code Online (Sandbox Code Playgroud)

使用SwitchCompatLibrary本身定义的样式信息

styles.xml:

<resources …
Run Code Online (Sandbox Code Playgroud)

xml android nine-patch android-layout android-theme

12
推荐指数
2
解决办法
1万
查看次数

如何更改切换按钮的颜色?

可能重复:
更改交换机的"打开"颜色

ToggleButton当状态从绿色(真)变为红色(假)时,我需要更改颜色.我该如何改变ToggleButton颜色?

android

10
推荐指数
2
解决办法
5万
查看次数

无法更改开关颜色

我正在寻找仅将此颜色应用于所有开关.但默认情况下,它colorAccent取代了此主题进行切换.

装置:棉花糖.

布局:

<Switch
            android:id="@+id/soundSwitch"
            style="@style/SwitchStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="@dimen/large_space"
            android:layout_marginRight="@dimen/medium_space"
            android:layout_marginTop="@dimen/large_space"
            android:checked="true"
            />
Run Code Online (Sandbox Code Playgroud)

款式-V21:

<style name="SwitchStyle" parent="Theme.AppCompat.Light">
        <!-- active thumb & track color (30% transparency) -->
        <item name="android:colorControlActivated">@color/switch_color</item>

        <!-- inactive thumb color -->
        <item name="colorSwitchThumbNormal">#f1f1f1</item>

        <!-- inactive track color (30% transparency) -->
        <item name="android:colorForeground">#42221f1f</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

android android-styles android-switch

3
推荐指数
1
解决办法
3747
查看次数