Android应用资源---绘制资源类型(Drawable)(五)

翻译 2012年04月24日 08:35:49

嵌入可绘制资源

定义在XML中的一个可绘制资源,它能够用指定的距离嵌入到另一个可绘制资源中。这种资源可在View对象需要的背景比它的实际边界小的时候使用。
文件位置(FILE LOCATION):

res/drawable/filename.xml

文件名被用于资源ID

被编译资源的数据类型(COMPILED RESOURCE DATATYPE):

资源指向一个InsetDrawable对象。

资源引用(RESOURCE REFERENCE):

Java代码中:R.drawable.filename

XML中:@[package:]drawable/filename

语法(SYNTAX):

    <?xml version="1.0" encoding="utf-8"?>
<inset
   
xmlns:android="http://schemas.android.com/apk/res/android"
   
android:drawable="@drawable/drawable_resource"
   
android:insetTop="dimension"
   
android:insetRight="dimension"
   
android:insetBottom="dimension"
   
android:insetLeft="dimension"/>

元素(ELEMENTS):

  <inset>

      定义嵌入的可绘制资源。它必须是根元素。

      属性(ATTRIBUTES):

      xmlns:android

      字符串值,必须的。它定义了XML的命名空间,必须是:http://schemas.android.com/apk/res/android

      android:drawable

      要绘制的资源,必须的,它指向一个要嵌入的可绘制资源。

      android:insetTop

      尺寸值。用尺寸值或Dimension资源定义顶部的嵌入位置。

      android:insetRight

      尺寸值。用尺寸值或Dimension资源定义右边的嵌入位置。

      android:insetBottom

      尺寸值。用尺寸值或Dimension资源定义底部的嵌入位置。

      android:insetLeft

      尺寸值。用尺寸值或Dimension资源定义左边的嵌入位置。

例子(EXAMPLE):

<?xml version="1.0" encoding="utf-8"?>
<insetxmlns:android="http://schemas.android.com/apk/res/android"
   
android:drawable="@drawable/background"
   
android:insetTop="10dp"
   
android:insetLeft="10dp"/>

裁剪可绘制资源

定义在XML中的一个可绘制资源,它能够基于这个资源的当前级别来裁剪另一个绘制资源。它能够基于级别来控制子绘制资源要被裁剪掉宽度和高度,就像重力来控制资源被放在容器中位置一样。这种资源经常被用于像进度条这样的效果。

文件位置(FILE LOCATION):

res/drawable/filename.xml

文件名被用作资源ID

被编译资源的数据类型(COMPILED RESOURCE DATATYPE

资源指向一个ClipDrawable对象。

资源引用(RESOURCE REFERENCE

Java代码中:R.drawable.filename

XML中:@[package:]drawable/filename

语法(SYNTAX):

 <?xml version="1.0" encoding="utf-8"?>
<clip
   
xmlns:android="http://schemas.android.com/apk/res/android"
   
android:drawable="@drawable/drawable_resource"
   
android:clipOrientation=["horizontal" | "vertical"]
   
android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical"
|
                     
"fill_vertical" | "center_horizontal" | "fill_horizontal"
|
                     
"center" | "fill" | "clip_vertical" | "clip_horizontal"] />

 

元素(ELEMENTS):

<clip>

定义要裁剪的绘制资源。它必须是根元素。

属性(ATTRIBUTES):

    xmlns:android

    字符串值,必须的。它定义了XML的命名空间,必须是:http://schemas.android.com/apk/res/android

    android:drawable

   可绘制的资源,必须的。它指向要裁剪的一个可绘制资源。

    android:clipOrientation

关键值,它定义了裁剪的方向。必须是下列值之一。

说明

horizontal

水平方向裁剪可绘制的资源

vertical

垂直方向裁剪可绘制的资源

    android:gravity

关键值,它指定了可绘制资源的裁剪位置。

它必须是下表中的一个或多个值的组合(组合时用“|”来分隔)。

说明

top

把对象放到容器的顶部,不改变它的尺寸。当clipOrientation被设置为vertical时,会在可绘制资源的底部进行裁剪。

bottom

把对象放到容器的底部,不改变它的尺寸。当clipOrientation被设置为vertical时,会在可绘制资源的顶部进行裁剪。

left

把对象放到容器的左边,不改变它的尺寸。这是默认的设置。当clipOrientation被设置为horizontal时,会在可绘制资源的右边进行裁剪。

right

把对象放到容器的右边,不改变它的尺寸。当clipOrientation被设置为horizontal时,会在可绘制资源的左边进行裁剪。

center_vertical

把对象放在容器的垂直中心位置,不改变它的尺寸。裁剪行为与重力被设为center时相同。

fill_vertical

如果需要,对象的垂直尺寸会增长,以便在垂直方向能够完全填充它的容器。当clipOrientation被设置为vertical时,因为绘制资源要填充垂直空间,所以不会有裁剪发生(除非可绘制资源的级别是0,导致它不可见)。

center_horizontal

把对象放在容器的水平中心,不改变它的尺寸。裁剪行为与重力是center是相同。

fill_horizontal

如果需要,对象会增长它的水平尺寸,以便在水平方向能够完全填充它的容器。当clipOrientation被设置为horizontal时,因为可绘制资源要填充水平空间,所以不会有裁剪发生(除非可绘制资源被设置为0,导致它不可见)。

center

把对象放到它的容器的中心位置,不改变它的尺寸。当clipOrientation被设置为horizontal时,在左右两边会发生裁剪;当clipOrientation被设置为vertical时,在上下两边会发生裁剪。

fill

如果需要,对象水平和垂直尺寸都会增长,以便能够完全填充它的容器。因为可绘制资源要完全填充它的容器的水平和垂直空间,所以不会裁剪发生(除非可绘制资源的级别被设置为0,导致它不可见)。

clip_vertical

额外的选项,它能够把它的容器的上下边界,设置为子对象的上下边缘的裁剪边界。裁剪要基于对象垂直重力设置:如果重力设置为top,则裁剪下边,如果设置为bottom,则裁剪上边,否则则上下两边都要裁剪。

clip_horizontal

额外的选项,它能够把它的容器的左右边界,设置为子对象的左右边缘的裁剪边界。裁剪要基于对象垂直重力设置:如果重力设置为right,则裁剪左边,如果设置为left,则裁剪右边,否则则左右两边都要裁剪。

例子(EXAMPLE):

XML文件被放在res/drawable/clip.xml中:

<?xml version="1.0" encoding="utf-8"?>
<clipxmlns:android="http://schemas.android.com/apk/res/android"
   
android:drawable="@drawable/android"
   
android:clipOrientation="horizontal"
   
android:gravity="left"/>

下面的布局XML给一个View对象应用了这个裁剪可绘制资源。

<ImageView
   
android:id="@+id/image"
   
android:background="@drawable/clip"
   
android:layout_height="wrap_content"
   
android:layout_width="wrap_content"/>

下面的代码获取了这个可绘制资源,并且为了能够逐步显示这张图片,它添加了裁剪效果:

ImageView imageview =(ImageView) findViewById(R.id.image);
ClipDrawable drawable =(ClipDrawable) imageview.getDrawable();
drawable
.setLevel(drawable.getLevel()+1000);

资源显示效果如下图:

Android应用资源---绘制资源类型(Drawable)(四)

级别列表 级别列表管理着一组可选择的绘制资源,被管理的每个资源都会给分配一个最大的数字值。调用setLevel()方法给装载在级别列表中的有android:maxLevel属性的绘制资源设置级别值。...
  • FireOfStar
  • FireOfStar
  • 2012年04月23日 08:45
  • 1944

Android应用资源---绘制资源类型(Drawable)(三)

状态列表 StateListDrawable一个被定义在XML中的可绘制对象,它依赖对象的状态,使用不同的图片来代表同一个图形。如,一个Button能够存在几种不同状态中的一种(如按下、聚焦或者都不...
  • FireOfStar
  • FireOfStar
  • 2012年04月22日 17:05
  • 1597

Android应用资源---绘制资源类型(Drawable)(六)

缩放可绘制资源 定义在XML中的一个可绘制资源,它能够基于自己当前的级别来改变另一个可绘制资源的尺寸。 文件位置(FILE LOCATION):     res/drawable/filenam...
  • FireOfStar
  • FireOfStar
  • 2012年04月25日 09:06
  • 2929

Android应用资源---绘制资源类型(Drawable)(二)

Nine-Patch NinePatch资源是一个PNG图片,在这个图片内能够定义拉伸区域,当在View对象的内容超过了普通图片的边框时,Android会缩放这个拉伸区域。通常,把这种类型的图片作为...
  • FireOfStar
  • FireOfStar
  • 2012年04月22日 11:07
  • 3000

Android应用资源---绘制资源类型(Drawable)(一)

可绘制资源是指能够被绘制到屏幕上的图形的一般化概念,并且能够用诸如getDrawable(int)等API方法来获取这些资源,或者使用诸如android:drawable和android:icon属性...
  • longzhongren
  • longzhongren
  • 2014年05月05日 13:04
  • 456

Android 资源分类详解

一、Android中资源分类详解 1、Android资源分类 Android中的资源分为两大类 : 可直接访问的资源, 无法直接访问的原生资源; -- 直接访问资源 : 这些资源可以使用 R. ...
  • Silk2018
  • Silk2018
  • 2016年04月13日 14:51
  • 571

关于android资源类型简述

关于android资源类型简述 原文  http://www.cnblogs.com/tyyj89/archive/2013/05/29/3106316.html 资源类型 ...
  • wangjia55
  • wangjia55
  • 2015年01月05日 09:29
  • 1259

Android中的Drawable资源—— VectorDrawable

在android5.0(API Level 21)中使用矢量图:vector drawable,vector drawable的特点是它不会因为图像的缩放而失真。为了兼容android 5.0以前的版...
  • hp910315
  • hp910315
  • 2016年06月28日 20:10
  • 2581

Android资源之Drawable介绍(一)

在Android开发中,资源文件是我们最熟悉和最需要的重要部分。Drawable作为资源的一种,更是项目中必备的资源。 Android中的Drawable资源有很多种,诸如LayerDrawable...
  • true100
  • true100
  • 2016年08月25日 17:11
  • 1753

Android Drawable资源总结篇

LayerDrawable LayerDrawable是一组按照顺序绘制的drawable资源,是由多个drawable资源重叠绘制而组成的,最后一个drawable会被绘制在最顶层。LayerDr...
  • feidu804677682
  • feidu804677682
  • 2016年01月19日 15:24
  • 2416
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android应用资源---绘制资源类型(Drawable)(五)
举报原因:
原因补充:

(最多只允许输入30个字)