今天再讲一个可以提高开发效率的插件 SelectorChapek,这个插件的主要作用是可以将一个 drawable 文件夹下面的图像,自动生成对应的 drawable selector,当然它的条件是文件名要符合安装要求的规范即可。
命名规则
命名规则插件的安装方式和上次讲到的 ButterKnife 一样,先搜索然后再安装。下面主要讲一下它的使用方法。
1))按照命名规则命名图片
图片命名2)右键点击 drawable 文件夹,选择 Generate Android Selectors
Generate Android Selectors3)自动生成对应的 drawable selector 文件
drawable selector这个就是生成的 selector 文件
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_launcher_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/ic_launcher_pressed" android:state_pressed="true"/>
</selector>
但是在我的 Studio 中,我发现 drawable 文件夹似乎少了,但是多了几个 mipmap 文件夹,而且如果是在 mipmap 文件夹中使用上面的操作来生成 drawable selector 是没有效果的。
那么mipmap文件夹是什么呢?
先引用一下官方介绍吧
Mipmapping for drawables
Using a mipmap as the source for your bitmap or drawable is a simple way to provide a quality image and various image scales, which can be particularly useful if you expect your image to be scaled during an animation.
Android 4.2 (API level 17) added support for mipmaps in the Bitmap class—Android swaps the mip images in your Bitmap when you've supplied a mipmap source and have enabled setHasMipMap(). Now in Android 4.3, you can enable mipmaps for a BitmapDrawable object as well, by providing a mipmap asset and setting the android:mipMap attribute in a bitmap resource file or by calling hasMipMap().
然后是应用场景
If you know that you are going to draw this bitmap at less than 50% of its original size, you may be able to obtain a higher quality by turning this property on. Note that if the renderer respects this hint it might have to allocate extra memory to hold the mipmap levels for this bitmap.
mipmap 和 drawable 使用起来没有任何区别,但是用 mipmap 系统会在缩放上提供一定的性能优化。
======================================================
今天看到书友提的问题,使用插件生成时报空指针异常
有知情的书友,请指点一下解解惑。谢谢!
=========================================================
今天 @touly 提出了几个插件,里面有一个效果和 SelectorChapek 一样,可以自动生成对应的 drawable selector。
Selector Drawable Generator
加入插件后,选中图片,在弹出框中输入文件名
Generate SelectorDrawable即可在 drawable 中生产对应的文件
目标文件在此要谢谢 @touly在评论中提出这些插件
网友评论