注意:本篇文章是本人阅读相关文章所写下的总结,方便以后查阅,所有内容非原创,侵权删。
本篇文章内容来自于:
1.Android开发艺术探索 任玉刚
2.领略千变万化的Android Drawable (一)
目录
- ScaleDrawable
--11.1 什么是ScaleDrawable
--11.2 ScaleDrawable语法/属性
--11.3 ScaleDrawable使用案例
11. ScaleDrawable
11.1 什么是ScaleDrawable
ScaleDrawable对应标签<scale>,它可以根据自己的等级(level)将指定的Drawable缩放到一定比例。
什么是等级(level)?
等级对ScaleDrawable的影响:
等级0表示ScaleDrawable不可见,这是默认值。
若想ScaleDrawable可见,则需要等级不为0。
等级为10000时就没有缩放效果了
级别越大Drawable显示得越大,应该设置为0-10000
XML设置的缩放比例越大,Drawable显示的越小
11.2 ScaleDrawable语法/属性
<?xml version="1.0" encoding="utf-8"?>
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/drawable_resource"
//android:gravity 当图片小于容器尺寸时,设置此选项可以对图片经典定位,
//这个属性比较多,不同选项可以使用‘|’来组合使用。
//top 将图片放在容器顶部,不改变图片大小
//bottom 将图片放在容器底部,不改变图片大小
//left 将图片放在容器左侧,不改变图片大小
//right 将图片放在容器右侧,不改变图片大小
//center_vertical 图片竖直居中,不改变图片大小
//fill_vertical 图片竖直方向填充容器
//center_horizontal 图片水平居中,不改变图片大小
//fill_horizontal 图片水平方向填充容器
//center 使图片在水平方向和竖直方向同时居中,不改变图片大小
//fill 图片填充容器,默认值
//clip_vertical 竖直方向剪切,很少使用
//clip_horizontal 水平方向剪切,很少使用
android:scaleGravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
//android:scaleHeight表示Drawable的高的缩放比例,值越大,内部Drawable的高度显示得越小,
//例如android:scaleHeight=”70%”,那么显示时Drawable的高度只有原来的30%。
android:scaleHeight="percentage"
//android:scaleWidth表示Drawable的宽的缩放比例,值越大,内部Drawable的宽显示得越小,
//例如android:scaleWidth=”70%”,那么显示时Drawable的宽度只有原来的30%。
android:scaleWidth="percentage" />
11.3 ScaleDrawable使用案例
大致效果
第一步:xml文件定义
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/shape_oval"
android:scaleGravity="center"
android:scaleHeight="20%"
android:scaleWidth="20%"></scale>
第二步:代码定义
当设置为imageview的src属性
ScaleDrawable drawable = (ScaleDrawable) ivShow.getDrawable();
drawable.setLevel(1);
当设置为textview的background属性
ScaleDrawable scale= (ScaleDrawable) scaleImage.getBackground();
scale.setLevel(1);