小编Too*_*NeT的帖子

在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万
查看次数

标签 统计

android ×1

android-layout ×1

android-theme ×1

nine-patch ×1

xml ×1