Android Drawable Resource学习(十)、ScaleDrawable
2015-07-25 07:33
477 查看
对另一个drawable资源,基于当前的level,进行尺寸变换的drawable。
文件位置:
文件名即资源名编译数据类型:
指向
In XML:
属性:
必须是下面的一个或多个值(多个值之间用”|“分隔),下面的值和描述和上一篇的ClipDrawable一样。
示例:
示例:
在scale.xml中:
[java] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:scaleWidth="50%"
android:scaleHeight="50%"
android:drawable="@drawable/image1"
android:scaleGravity="center_vertical|center_horizontal"
>
</scale>
在layout中使用:
[java] view
plaincopy
<ImageView
android:id="@+id/imgView"
android:src="@drawable/scale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
在代码中设置level:
[java] view
plaincopy
ImageView imageView=(ImageView)findViewById(R.id.imgView);
ScaleDrawable scaleDrawable=(ScaleDrawable)imageView.getDrawable();
scaleDrawable.setLevel(1); //level 1的时候就是50%
<pre name="code" class="java"> //scaleDrawable.setLevel(0); //level 0不可见</pre><br>
<pre></pre>
<p></p>
<pre></pre>
<br>
<img src="http://img.my.csdn.net/uploads/201212/03/1354516551_4610.jpg" alt=""><br>
<p></p>
<p><br>
</p>
<pre></pre>
<div style="padding-top:20px">
<p style="font-size:12px;">版权声明:本文为博主原创文章,未经博主允许不得转载。</p>
</div>
文件位置:
res/drawable/filename.xml
文件名即资源名编译数据类型:
指向
ScaleDrawable的指针。资源引用:In Java:
R.drawable.filename
In XML:
@[package:]drawable/filename语法:
<span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln"> </span><span class="tag"><</span><a target=_blank style="color: rgb(202, 0, 0);">scale</a><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln"> </span><span class="atn">android:drawable</span><span class="pun">=</span><span class="atv">"@drawable/</span><em>drawable_resource</em><span class="atv">"</span><span class="pln"> </span><span class="atn">android:scaleGravity</span><span class="pun">=</span><span class="atv">["top"</span><span class="pln"> | </span><span class="atv">"bottom"</span><span class="pln"> | </span><span class="atv">"left"</span><span class="pln"> | </span><span class="atv">"right"</span><span class="pln"> | </span><span class="atv">"center_vertical"</span><span class="pln"> | </span><span class="atv">"fill_vertical"</span><span class="pln"> | </span><span class="atv">"center_horizontal"</span><span class="pln"> | </span><span class="atv">"fill_horizontal"</span><span class="pln"> | </span><span class="atv">"center"</span><span class="pln"> | </span><span class="atv">"fill"</span><span class="pln"> | </span><span class="atv">"clip_vertical"</span><span class="pln"> | </span><span class="atv">"clip_horizontal"</span><span class="pln">] </span><span class="atn">android:scaleHeight</span><span class="pun">=</span><span class="atv">"</span><em>percentage</em><span class="atv">"</span><span class="pln"> </span><span class="atn">android:scaleWidth</span><span class="pun">=</span><span class="atv">"</span><em>percentage</em><span class="atv">"</span><span class="pln"> </span><span class="tag">/></span>元素:
<scale>定义一个ScaleDrawable,必须作为根元素。
属性:
xmlns:androidString类型。 必须的。定义XML文件的命名空间。必须是
"http://schemas.android.com/apk/res/android".
android:drawableDrawable 资源。必须的。引用一个drawable资源。
android:scaleGravity关键字。指定缩放后的gravity的位置。
必须是下面的一个或多个值(多个值之间用”|“分隔),下面的值和描述和上一篇的ClipDrawable一样。
值 | 描述 |
---|---|
top | Put the object at the top of its container, not changing its size. |
bottom | Put the object at the bottom of its container, not changing its size. |
left | Put the object at the left edge of its container, not changing its size. This is thedefault. |
right | Put the object at the right edge of its container, not changing its size. |
center_vertical | Place object in the vertical center of its container, not changing its size. |
fill_vertical | Grow the vertical size of the object if needed so it completely fills its container. |
center_horizontal | Place object in the horizontal center of its container, not changing its size. |
fill_horizontal | Grow the horizontal size of the object if needed so it completely fills its container. |
center | Place the object in the center of its container in both the vertical and horizontal axis, notchanging its size. |
fill | Grow the horizontal and vertical size of the object if needed so it completely fills itscontainer. |
clip_vertical | Additional option that can be set to have the top and/or bottom edges of the child clipped toits container's bounds. The clip is based on the vertical gravity: a top gravity clips thebottom edge, a bottom gravity clips the top edge, and neither clips both edges. |
clip_horizontal | Additional option that can be set to have the left and/or right edges of the child clipped toits container's bounds. The clip is based on the horizontal gravity: a left gravity clipsthe right edge, a right gravity clips the left edge, and neither clips both edges. |
android:scaleHeightPercentage(百分比)缩放的高度,以百分比的方式表示drawable的缩放。形式例如:100%,12.5%。
android:scaleWidthPercentage(百分比)缩放的宽度,以百分比的方式表示drawable的缩放。形式例如:100%,12.5%。
示例:
<span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln"> </span><span class="tag"><scale</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln"> </span><span class="atn">android:drawable</span><span class="pun">=</span><span class="atv">"@drawable/logo"</span><span class="pln"> </span><span class="atn">android:scaleGravity</span><span class="pun">=</span><span class="atv">"center_vertical|center_horizontal"</span><span class="pln"> </span><span class="atn">android:scaleHeight</span><span class="pun">=</span><span class="atv">"80%"</span><span class="pln"> //表示从高度80% 开始缩放,80%为图片高度最小值。level 0不可见。 </span><span class="atn">android:scaleWidth</span><span class="pun">=</span><span class="atv">"80%"</span><span class="tag">/></span><span class="pln"> </span><span class="pln">//表示从宽度80% 开始缩放,80%为图片宽度最小值。level 0不可见。</span>参考:
ScaleDrawable
示例:
在scale.xml中:
[java] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:scaleWidth="50%"
android:scaleHeight="50%"
android:drawable="@drawable/image1"
android:scaleGravity="center_vertical|center_horizontal"
>
</scale>
在layout中使用:
[java] view
plaincopy
<ImageView
android:id="@+id/imgView"
android:src="@drawable/scale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
在代码中设置level:
[java] view
plaincopy
ImageView imageView=(ImageView)findViewById(R.id.imgView);
ScaleDrawable scaleDrawable=(ScaleDrawable)imageView.getDrawable();
scaleDrawable.setLevel(1); //level 1的时候就是50%
<pre name="code" class="java"> //scaleDrawable.setLevel(0); //level 0不可见</pre><br>
<pre></pre>
<p></p>
<pre></pre>
<br>
<img src="http://img.my.csdn.net/uploads/201212/03/1354516551_4610.jpg" alt=""><br>
<p></p>
<p><br>
</p>
<pre></pre>
<div style="padding-top:20px">
<p style="font-size:12px;">版权声明:本文为博主原创文章,未经博主允许不得转载。</p>
</div>
相关文章推荐
- Android Drawable Resource学习(九)、ClipDrawable
- Android Drawable Resource学习(八)、InsetDrawable
- Android Drawable Resource学习(七)、TransitionDrawable
- Android Drawable Resource学习(六)、LevelListDrawable
- Android Drawable Resource学习(五)、StateListDrawable
- Android Drawable Resource学习(四)、LayerDrawable
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- Android Api Demos登顶之路(四)
- Android Drawable Resource学习(二)、BitmapDrawable和Bitmap
- Android Drawable Resource学习(一)、Drawable Resource简介
- android Graphics(四):canvas变换与操作
- android Graphics(三):区域(Range)
- android Graphics(三):区域(Range)
- android Graphics(二):路径及文字
- android Graphics(一):概述及基本几何图形绘制
- android 概述 及四大组件
- Android个人错误笔记
- 关于android dropbox API的几点学习
- Android ListView美化
- Android之ListView进阶