安卓开发之Drawable巧妙的用处

平时我们想要一些特殊的界面效果大多数会使用自定义view,但相比较xml来说自定义view会稍微麻烦点,如果想要实现一些简单的效果,我们直接通过Drawable就可以实现

在Drawable的这些继承类中我们常用的主要有以下几种:LayerDrawable、ShapeDrawable、NinePatchDrawable、BitmapDrawable、StateListDrawable、LevelListDrawable、TransitionDrawable、InsetDrawable、ScaleDrawable、ClipDrawable等,下面我们简单的介绍一下

首先使用xml来构建一个drawble的BitmapDrawable对象

 

安卓开发之Drawable巧妙的用处_第1张图片

安卓开发之Drawable巧妙的用处_第2张图片

 

我设置的原图是这样的:

安卓开发之Drawable巧妙的用处_第3张图片

xml里面的内容:



属性tileMode表示平铺模式,该属性共有四种取值,分别是disable、repeat、mirror、clamp四种,默认情况下是disable,就是不做任何处理,当我们在这里使用了除disable之外的另外三种取值时,gravity属性值失效。下面先来看一下 取值为mirror的效果

我的视图里是这样的:

安卓开发之Drawable巧妙的用处_第4张图片

最终的效果图:

安卓开发之Drawable巧妙的用处_第5张图片

这样就是实现了镜面的效果,mirror意为镜面,其效果也可想而知。需要注意的是图片的大小要小与控件的大小。否则不起作用。

安卓开发之Drawable巧妙的用处_第6张图片

当图片的大小小于控件的大小时,图片会在水平方向和垂直方向不断的重复。这个是平铺的效果 只需要将 android:tileMode="repeat" 

安卓开发之Drawable巧妙的用处_第7张图片

这个效果是带框框的哦,直接把tileMode属性的值改为clamp,当图片小于控件的大小时,图片在水平方向或者垂直方向末端的颜色会自动延伸直至将控件填充满有点像心愿墙之类的效果

最后的直接看一下这个背景的渐变吧

安卓开发之Drawable巧妙的用处_第8张图片

xml中是这样的,注意这里的类型要改成shap





其中 gradient 的翻译为渐变,我们只需要给他开始的颜色和结尾的颜色中间自己会进行渲染,意思很像动画里面的补间动画呢。呐呐具体的实现还有好多好多,以后在详细的介绍啦。总而言之在安卓的世界里,只有你想不到,绝对没有安卓做不到的事(除了根据手机主题改变手机壳颜色 当然也不一定 哈哈哈)

git地址:

https://github.com/SunShinezhou1/drawble

你可能感兴趣的:(安卓开发之Drawable巧妙的用处)