今朝该筹划的实现已经放在了 GitHub, StateBackgroundUtil ,迎接不雅摩支撑。
一些细节
在设置按下状况的 drawable 时,
- Drawable normal = context.getResources().getDrawable(res);
- Drawable pressed = context.getResources().getDrawable(res);
这里的 normal 和 pressed 应用的资本 res 资本是同一个 id。然则因为 drawable 在加载过程中,同一个 res 资本只要在内存中加载过一次,这个 drawable 对应的 state 就会保持一致,所以这里要对 pressed 进行可变设置。
- 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 事宜,会造成冲突,所以当时也就一了百了。
【编辑推荐】
- 关于Android strings.xml-你应当懂得的几个原则
- Android上岸页面仿拉钩动效,你总会须要它!
- Gradle for Android第一篇( 大年夜Gradle和AS开端 )
- Gradle for Android第二篇( Build.gradle入门 )
- Android Studio jni开辟入门——看我就够了!
推荐阅读
nodejs那边先按住不表,这里谈谈在网页里若何获取二进制数据?常见的办法有3种,1是经由过程XMLHttpRequest 2,2是经由过程File和Blob一套相干接口。 写这篇博客的来源是小胡子哥的一篇文┞>>>详细阅读
本文标题:StateBackgroundUtil - 仅使用一张资源图片为View设置具有按下效果的背景
地址:http://www.17bianji.com/lsqh/34715.html
1/2 1