ScaleDrawable 以你之姓@ 2023-06-19 05:29 7阅读 0赞 1,介绍: 【1】ScaleDrawable对应<scale>标签,主要基于当前的level,对指定的Drawable进行缩放操作。 【2】有点需要特别注意的是我们如果定义好了ScaleDrawable,要将其显示出来的话,必须给ScaleDrawable设置一个大于0小于10000的等级(级别越大Drawable显示得越大,等级为10000时就没有缩放效果了) 2,理解: 【1】 draw函数的源码 * 很明显d.getLevel() != 0才会去把当前drawable画在画布上然后显示在屏幕上, @Override public void draw(Canvas canvas) { final Drawable d = getDrawable(); if (d != null && d.getLevel() != 0) { d.draw(canvas); } } 3, 语法 <?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" /> 【1】android:gravity * 当图片小于容器尺寸时,设置此选项可以对图片经典定位,这个属性比较多,不同选项可以使用‘|’来组合使用。 <table> <tbody> <tr> <td> <p>可选项 </p> </td> <td> <p> 含义</p> </td> </tr> <tr> <td> <p>top</p> </td> <td> <p>将图片放在容器顶部,不改变图片大小</p> </td> </tr> <tr> <td> <p>bottom</p> </td> <td> <p>将图片放在容器底部,不改变图片大小</p> </td> </tr> <tr> <td> <p>left</p> </td> <td> <p>将图片放在容器左侧,不改变图片大小</p> </td> </tr> <tr> <td> <p>right</p> </td> <td> <p>将图片放在容器右侧,不改变图片大小</p> </td> </tr> <tr> <td> <p>center_vertical</p> </td> <td> <p>图片竖直居中,不改变图片大小</p> </td> </tr> <tr> <td> <p>fill_vertical</p> </td> <td> <p>图片竖直方向填充容器</p> </td> </tr> <tr> <td> <p>center_horizontal</p> </td> <td> <p>图片水平居中,不改变图片大小</p> </td> </tr> <tr> <td> <p>fill_horizontal</p> </td> <td> <p>图片水平方向填充容器</p> </td> </tr> <tr> <td> <p>center</p> </td> <td> <p>使图片在水平方向和竖直方向同时居中,不改变图片大小</p> </td> </tr> <tr> <td> <p>fill</p> </td> <td> <p>图片填充容器,默认值</p> </td> </tr> <tr> <td> <p>clip_vertical </p> </td> <td> <p>竖直方向剪切,很少使用</p> </td> </tr> <tr> <td> <p>clip_horizontal</p> </td> <td> <p>水平方向剪切,很少使用</p> </td> </tr> <tr> <td> <p> </p> </td> <td> <p> </p> </td> </tr> </tbody> </table> 【2】android:scaleHeight * 表示Drawable的高的缩放比例,值越大,内部Drawable的高度显示得越小,例如android:scaleHeight=”70%”,那么显示时Drawable的高度只有原来的30%。 【3】android:scaleWidth * 表示Drawable的宽的缩放比例,值越大,内部Drawable的宽显示得越小,例如android:scaleWidth=”70%”,那么显示时Drawable的宽度只有原来的30%。 3,案例 【1】实现效果 * 我们再来对比一下宽高同等缩放比例(50%)下,level对Drawable的影响效果,分别设置level等级为1,5000,10000. 【2】实现代码: * 资源文件 <?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/image1" android:scaleHeight="70%" android:scaleWidth="70%" android:scaleGravity="center" > </scale> * 资源文件 <?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/image1" android:scaleHeight="30%" android:scaleWidth="30%" android:scaleGravity="center" > </scale> * 必须在java调用设置level(默认为0)的代码才可以正常显示: ImageView scaleImage= (ImageView) findViewById(R.id.scaleImage); ScaleDrawable scale= (ScaleDrawable) scaleImage.getBackground(); scale.setLevel(1); 更多关于Drawable 资料:[https://blog.csdn.net/cricket\_7/category\_9564229.html][https_blog.csdn.net_cricket_7_category_9564229.html] [https_blog.csdn.net_cricket_7_category_9564229.html]: https://blog.csdn.net/cricket_7/category_9564229.html
相关 Android ScaleDrawable 顾名思义,Android ScaleDrawable实现一个drawable的缩放。写一个例子。 一个线性布局,垂直放几个ImageView,然后依次缩放若干个ScaleDr 迷南。/ 2023年10月17日 08:11/ 0 赞/ 7 阅读
相关 ScaleDrawable 1,介绍: 【1】ScaleDrawable对应<scale>标签,主要基于当前的level,对指定的Drawable进行缩放操作。 【2】有点需要特别注意的是我们如果定义 以你之姓@/ 2023年06月19日 05:29/ 0 赞/ 8 阅读
相关 Drawable解析1——ColorDrawable、BitmapDrawable、ClipDrawabl和ScaleDrawable Drawable资源是Android应用中使用最广泛的资源,它不仅可以使用各种格式的图片资源,也可以使用多种xml文件资源。当然直接使用图片资源没什么好说的,我们主要是要研究下 不念不忘少年蓝@/ 2021年09月22日 04:58/ 0 赞/ 498 阅读
还没有评论,来说两句吧...