美文网首页
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