Android颜色选择器不适用于Android 4

Android颜色选择器不适用于Android 4,第1张

概述我有一个定义的DrawableResource(res/drawable/.xml),其中包含定义的颜色资源(res/color/.xml).颜色资源包含状态选择器.在Android5中,一切正常运行,颜色状态选择器正常运行.但是在Android4上无法正常工作.为什么会造成这种情况?如何解决?布局:<Buttonandroid:bac

我有一个定义的Drawable Resource(res / drawable / .xml),其中包含定义的颜色资源(res / color / .xml).颜色资源包含状态选择器.

在Android 5中,一切正常运行,颜色状态选择器正常运行.但是在AndroID 4上无法正常工作.为什么会造成这种情况?如何解决?

布局:

<button    androID:background="@drawable/btn_login"

drawable / btn_login.xml

<?xml version="1.0" enCoding="utf-8"?><@R_947_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item>        <shape androID:shape="rectangle">            <stroke                androID:wIDth="@dimen/login_button_border"                androID:color="@color/btn_login_border" />            <solID androID:color="@color/btn_login_background" />        </shape>    </item>    <item androID:bottom="@dimen/login_button_border">        <shape androID:shape="rectangle">            <stroke                androID:wIDth="@dimen/login_button_border"                androID:color="@color/btn_login_background" />            <solID androID:color="@androID:color/transparent" />        </shape>    </item></@R_947_3419@>

color / btn_login_border.xml

<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:color="@color/login_border_highlighted" androID:state_pressed="true"/>    <item androID:color="@color/login_border"/></selector>

color / btn_login_background.xml

<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:color="@color/login_button_highlighted" androID:state_pressed="true"/>    <item androID:color="@color/login_button"/></selector>

解决方法:

由于Lollipop之前的版本不支持colorStateList,因此您可以像这样重新组织显示的资源:

drawable / btn_login.xml

<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:drawable="@drawable/login_button_highlighted" androID:state_pressed="true"/>    <item androID:drawable="@drawable/login_button"/></selector>

drawable / btn_login_normal.xml

<?xml version="1.0" enCoding="utf-8"?><@R_947_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item>        <shape androID:shape="rectangle">            <stroke                androID:wIDth="@dimen/login_button_border"                androID:color="@color/login_border" />            <solID androID:color="@color/login_button" />        </shape>    </item>    <item androID:bottom="@dimen/login_button_border">        <shape androID:shape="rectangle">            <stroke                androID:wIDth="@dimen/login_button_border"                androID:color="@color/login_button" />            <solID androID:color="@androID:color/transparent" />        </shape>    </item></@R_947_3419@>

drawable / btn_login_highlihted.xml

<?xml version="1.0" enCoding="utf-8"?><@R_947_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item>        <shape androID:shape="rectangle">            <stroke                androID:wIDth="@dimen/login_button_border"                androID:color="@color/login_border_highlighted" />            <solID androID:color="@color/login_button_highlighted" />        </shape>    </item>    <item androID:bottom="@dimen/login_button_border">        <shape androID:shape="rectangle">            <stroke                androID:wIDth="@dimen/login_button_border"                androID:color="@color/login_button_highlighted" />            <solID androID:color="@androID:color/transparent" />        </shape>    </item></@R_947_3419@>

在这种情况下,这将不需要使用颜色选择器.

总结

以上是内存溢出为你收集整理的Android颜色选择器不适用于Android 4全部内容,希望文章能够帮你解决Android颜色选择器不适用于Android 4所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120854.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存