我有一个定义的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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)