作家
登录

StateBackgroundUtil - 仅使用一张资源图片为View设置具有按下效果的背景

作者: 来源: 2017-04-11 13:03:44 阅读 我要评论

default
  •             pressed.setAlpha(convertAlphaToInt(alpha)); 
  •     } 
  • 今朝该筹划的实现已经放在了 GitHub, StateBackgroundUtil ,迎接不雅摩支撑。

    一些细节

    在设置按下状况的 drawable 时,

    1. Drawable normal = context.getResources().getDrawable(res);
    2. Drawable pressed = context.getResources().getDrawable(res);  

    这里的 normal 和 pressed 应用的资本 res 资本是同一个 id。然则因为 drawable 在加载过程中,同一个 res 资本只要在内存中加载过一次,这个 drawable 对应的 state 就会保持一致,所以这里要对 pressed 进行可变设置。

    1. pressed.mutate(); 

    关于 mutate 办法的官方解释

    This is especially useful when you need to modify properties of drawables loaded from resources. By default, all drawables instances loaded from the same resource share a common state;

    留意:因为 View 的按下效不雅只有在设置了 clickable 为 true 时才可以看到效不雅,所以当你应用 StateBackgroundUtil 为 View 设置背景后却发明没有按下效不雅,你应当知道怎么办。

    不足

    • 今朝不支撑弗成点击状况
    • 不支撑色彩背景(当然你可以经由过程 shape 曲线救国)

    最后,如不雅你发明还有什愦问题,迎接在 issue 或者评论区指出,也迎接你把更好的筹划 PR 上来。

    然则后来认为照样麻烦,并且一些时刻一些 View 本身就须要处理 touch 事宜,会造成冲突,所以当时也就一了百了。

    【编辑推荐】

    1. 关于Android strings.xml-你应当懂得的几个原则
    2. Android上岸页面仿拉钩动效,你总会须要它!
    3. Gradle for Android第一篇( 大年夜Gradle和AS开端 )
    4. Gradle for Android第二篇( Build.gradle入门 )
    5. Android Studio jni开辟入门——看我就够了!
    【义务编辑:枯木 TEL:(010)68476606】

      推荐阅读

      JS中的二进制操作简介

    nodejs那边先按住不表,这里谈谈在网页里若何获取二进制数据?常见的办法有3种,1是经由过程XMLHttpRequest 2,2是经由过程File和Blob一套相干接口。 写这篇博客的来源是小胡子哥的一篇文┞>>>详细阅读


    本文标题:StateBackgroundUtil - 仅使用一张资源图片为View设置具有按下效果的背景

    地址:http://www.17bianji.com/lsqh/34715.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)