Android之Drawable-ScaleDrawable

注意:本篇文章是本人阅读相关文章所写下的总结,方便以后查阅,所有内容非原创,侵权删。

本篇文章内容来自于:
1.Android开发艺术探索 任玉刚
2.领略千变万化的Android Drawable (一)

目录

  1. 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);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 提到Drawable,第一反应肯定是用于存放图片,实际上,Drawable还可以存放其他资源。那么本篇就来深入了解...
    厘米姑娘阅读 2,914评论 7 13
  • 转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/android/20150...
    坚持编程_lyz阅读 1,180评论 0 1
  • “ 他们都说,做女人难,为了家庭付出,为了事业打拼。 想想也是,在家要照顾老人、小孩、老公,在外要为工作拼搏。时常...
    联懿唯美阅读 378评论 0 1
  • 最原始的「酷」和「有趣」是两个挺好的概念,符合这两条的人确实很有意思。但这些词开始狂轰滥炸以后开始成为一件很有目的...
    KillerBigStan阅读 162评论 0 0
  • 最近听到一个清华的教授讲说:他想让他女儿大学时候学习计算机,研究生学习心理学,博士生读个哲学。不仅是因为计算机是认...
    Shero_dc6f阅读 1,020评论 0 0