美文网首页
Android ImageView selector图片,8.0

Android ImageView selector图片,8.0

作者: GexYY | 来源:发表于2018-05-29 15:27 被阅读0次

selector设置两个大小不一样的状态图

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@mipmap/guide_dot_on" android:state_selected="true"/>
    <item android:drawable="@mipmap/guide_dot_right"/>

</selector>

guide_dot_on.png 宽高:30x30


guide_dot_on.png

guide_dot_right.png 宽高:17x27


guide_dot_right.png

8.0系统会出现以下情况,切换的时候,图片显示大小和原来不一致的问题:


guide.gif

原因通过debug源码发现:


image.png

8.0系统每次切换,这个地方w和mDrawableWidth,h和mDrawableheight的值始终一样,导致没有执行requestLayout()方法
5.0系统以及之前则没有这个问题,引起解决办法是每次setSelected()之后,手动调用一次requestLayout()方法,便可解决问题
目前我手头三台8.0系统手机小米Mix2,华为,oppo R15均出现此问题, 6.0和7.0系统尚未测试
以上仅为个人测试结果,如果有误,欢迎提出问题,并进行文章修复

相关文章

网友评论

      本文标题:Android ImageView selector图片,8.0

      本文链接:https://www.haomeiwen.com/subject/rfhajftx.html