Drawable资源——Scale Drawable 规模可绘制

Drawable资源——Scale Drawable 规模可绘制

1,认识
它可以根据自己的等级(level)将指定的Drawable缩放到一定比例。
文件位置 ︰
res/drawable/filename.xml
文件名用作资源 id。
语法 ︰
    <?xml version="1.0" encoding="utf-8"?>
    <scale
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:drawable="@drawable/drawable_resource"
        android:scaleGravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                              "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                              "center" | "fill" | "clip_vertical" | "clip_horizontal"]
        android:scaleHeight="percentage"
        android:scaleWidth="percentage" />
2,各属性注解
     <scale>
xmlns:android
字符串。所需。定义 XML 命名空间,
android:drawable
可绘制资源。所需。可绘制的资源的引用。

android:scaleGravity
等同于Shape中的android:gravity
    top     
    将对象放在其容器,不改变其大小的顶部。
    bottom     
    将对象放在其容器,不改变其大小的底部。
    left     
    将对象放在左边缘与其容器,不改变其大小。这是默认设置。
    right    
    将对象放在其容器,不改变其大小的右边缘。
    center_vertical     
    将对象放在其容器,不改变其大小的垂直中心。
    fill_vertical     
    如果需要完全充满其容器,成长对象的垂直大小。
    center_horizontal      
    将对象放在其容器,不改变其大小的水平中心。
    fill_horizontal     
    如果需要完全充满其容器,成长对象的水平大小。
    center     
    将对象放置在其容器中的垂直和水平轴,不改变其大小的中心。
    fill     
    如果需要完全充满其容器,成长对象的水平和垂直大小。
    clip_vertical     
    可以设置要剪切到其容器边界的顶部和底部边缘的附加选项。
              剪辑基于垂直重力 ︰ 顶尖的重力剪辑的底部边缘、 底部重力
              剪辑顶部边缘的和既不剪辑两个边缘。
    clip_horizontal     
    附加选项,可以设置要剪切到其容器边界的左或右边缘。剪辑基于
    横向重力 ︰  左的重力剪辑的右边缘、 正确的重力剪辑的左边的缘,
    和既不剪辑两个边缘。

android:scaleHeight
百分比。指定Drawable高的缩放比例。例如 ︰ 100%、 12.5%、 等。

android:scaleWidth
百分比。指定Drawable宽的缩放比例。例如 ︰ 100%、 12.5%、 等。 

3,代码示例
       scale_drawable_useing.xml
<?xml version="1.0" encoding="utf-8"?>
    android:drawable="@drawable/btn_logo"
    android:scaleGravity="center"
    android:scaleHeight="70%"
    android:scaleWidth="70%" />
           ScaleDrawableUseingActivity.java
        ivScale=(ImageView) findViewById(R.id.iv_scale);
        ScaleDrawable scaleD=(ScaleDrawable) ivScale.getBackground();
        scaleD.setLevel(1);
        注意:
       必须要有设置等级这一步:scaleD.setLevel(),因为Drawable的默认等级为0,那么如果不设置等级,那么ScaleDrawable将无法显示出来。
系统内部约定的Drawable等级的范围为:0~10000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值