`
jguangyou
  • 浏览: 375672 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Drawable资源之LayerDrawable资源

 
阅读更多

A LayerDrawable is a drawable object that manages an array of other drawables. Each drawable in the list is drawn in the order of the list—the last drawable in the list is drawn on top.

Each drawable is represented by an <item> element inside a single <layer-list> element.

file location:
res/drawable/filename.xml
The filename is used as the resource ID.
compiled resource datatype:
Resource pointer to a LayerDrawable.
resource reference:
In Java: R.drawable.filename
In XML: @[package:]drawable/filename
syntax:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:id="@[+][package:]id/resource_name"
        android:top="dimension"
        android:right="dimension"
        android:bottom="dimension"
        android:left="dimension" />
</layer-list>
 
elements:
<layer-list>
Required. This must be the root element. Contains one or more <item> elements.

attributes:

xmlns:android
String. Required. Defines the XML namespace, which must be"http://schemas.android.com/apk/res/android".
<item>
Defines a drawable to place in the layer drawable, in a position defined by its attributes. Must be a child of a <selector> element. Accepts child <bitmap> elements.

attributes:

android:drawable
Drawable resource. Required. Reference to a drawable resource.
android:id
Resource ID. A unique resource ID for this drawable. To create a new resource ID for this item, use the form: "@+id/name". The plus symbol indicates that this should be created as a new ID. You can use this identifier to retrieve and modify the drawable with View.findViewById() orActivity.findViewById().
android:top
Integer. The top offset in pixels.
android:right
Integer. The right offset in pixels.
android:bottom
Integer. The bottom offset in pixels.
android:left
Integer. The left offset in pixels.

All drawable items are scaled to fit the size of the containing View, by default. Thus, placing your images in a layer list at different positions might increase the size of the View and some images scale as appropriate. To avoid scaling items in the list, use a <bitmap> element inside the <item> element to specify the drawable and define the gravity to something that does not scale, such as "center". For example, the following <item> defines an item that scales to fit its container View:

<itemandroid:drawable="@drawable/image"/>

To avoid scaling, the following example uses a <bitmap> element with centered gravity:

<item><bitmapandroid:src="@drawable/image"android:gravity="center"/></item>
example:
XML file saved at res/drawable/layers.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
      <bitmap android:src="@drawable/android_red"
        android:gravity="center" />
    </item>
    <item android:top="10dp" android:left="10dp">
      <bitmap android:src="@drawable/android_green"
        android:gravity="center" />
    </item>
    <item android:top="20dp" android:left="20dp">
      <bitmap android:src="@drawable/android_blue"
        android:gravity="center" />
    </item>
</layer-list>
 

Notice that this example uses a nested <bitmap> element to define the drawable resource for each item with a "center" gravity. This ensures that none of the images are scaled to fit the size of the container, due to resizing caused by the offset images.

This layout XML applies the drawable to a View:

<ImageView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/layers" />

 

The result is a stack of increasingly offset images:



 

  • 大小: 8.1 KB
分享到:
评论

相关推荐

    Drawable资源管理图片处理

    在Android开发中,Drawable资源是用于管理应用中各种图形元素,如图片、颜色、形状等的关键组成部分。了解和熟练掌握Drawable资源的管理与图片处理,对于优化应用性能和提升用户体验至关重要。以下是一些关于...

    LayerDrawable

    每个`&lt;item&gt;`标签代表一个Drawable层,可以通过设置`android:top`, `android:bottom`, `android:left`, `android:right`属性来调整各层的位置,或者通过`android:drawable`指定Drawable资源,甚至可以设置`android:...

    drawable(图片).zip

    本篇文章将深入探讨Android中的Drawable资源及其在压缩包"drawable(图片).zip"中的应用。 首先,Drawable是Android系统中用于表示图形对象的接口,它可以是位图(Bitmap)、形状(Shape)、动画(Animation)等。在...

    android安卓APP之13种Drawable位图片资源.zip_android客户端是什么

    本资源包“android安卓APP之13种Drawable位图片资源.zip”涵盖了Android开发中常见的13种Drawable类型,这些类型极大地丰富了Android应用的视觉表现和动态效果。下面将详细介绍每种Drawable的特性和用法。 1. **...

    android drawable

    `Drawable`还可以进行组合,例如,通过`LayerDrawable`可以叠加多个`Drawable`,创建复杂的视觉效果。此外,`StateListDrawable`可以根据视图的状态(如按下、选中等)来显示不同的`Drawable`。 在实际开发中,`...

    玩转Android之Drawable的使用

    【玩转Android之Drawable的使用】 Drawable在Android开发中扮演着至关重要的角色,它是图形和图像的基础元素,广泛用于UI设计和自定义视图。在Android中,Drawable不仅仅局限于简单的图片,还包括各种复杂的图形和...

    android drawable下的xml详解

    **ColorDrawable**是最简单的`drawable`类型之一,它用于表示一个单一颜色的绘制区域。在XML布局文件中,可以通过`&lt;color&gt;`标签来定义一个颜色资源,并通过`android:color`属性指定具体的颜色值。例如,以下XML代码...

    drawable(图片).rar

    在Android项目的res/drawable目录下,开发者通常会根据需要将这些Drawable资源放入相应的子文件夹,如drawable-mdpi、drawable-hdpi等,以确保在不同密度的设备上正确显示。此外,Android Studio还支持vector ...

    DrawableSample

    本示例"DrawableSample"将深入探讨如何在Android应用程序中使用和管理Drawable资源,以及它们在UI设计和交互中的重要性。 首先,Drawable在Android中主要用于设置图像、背景或者按钮等组件的外观。它提供了丰富的...

    安卓Drawable的使用

    1. **BitmapDrawable**:这是基于位图图像的Drawable,通常从本地文件、资源或网络加载。你可以通过`BitmapFactory.decodeResource()`方法或`BitmapDrawable(Bitmap)`构造函数创建BitmapDrawable。 2. **...

    Drawable的基础demo

    在Android资源文件中,我们通常通过XML定义`Drawable`,例如在`res/drawable`目录下创建一个XML文件,里面可以定义一个`shape`,设置其形状、颜色、边框等属性。例如: ```xml &lt;solid android:color="#FF0000" /&gt;...

    DrawableStatesDemo:一个学习自定义Drawable以及学习DrawableState的demo

    `Drawable`是Android中表示图形对象的接口,它可以是一个简单的颜色、位图、九宫格图像(Nine-Patch)或者更复杂的组合,如层叠的`LayerDrawable`或选择器`StateListDrawable`。`Drawable`主要用于设置按钮、背景等...

    Android中不同类型的Drawable使用

    BitmapDrawable是最基础的Drawable类型,用于展示位图资源,比如从本地文件、网络或资源ID加载的图片。可以通过设置BitmapDrawable的BitmapOptions来调整缩放、裁剪和过滤等参数。 2. **Shape Drawable** Shape ...

    Android高级应用源码-drawable(图片).zip

    5. **LayerDrawable** 和 **InsetDrawable**:LayerDrawable允许将多个Drawable堆叠在一起,常用于实现图层效果。InsetDrawable则可以为Drawable添加内边距,常用于确保Drawable在不同密度屏幕上的显示效果一致。...

    Android drawable 玩转自定义图片以及bug的解决

    3. **使用LayerDrawable和InsetDrawable**:为了组合多个Drawable,可以使用LayerDrawable。它允许你在一个Drawable中堆叠多个子Drawable,通过设置各自的层级和位置。此外,InsetDrawable可用于为Drawable添加内...

    Android高级应用源码-drawable(图片).rar

    6. **层叠Drawable(LayerDrawable)**: 层叠Drawable允许将多个Drawable堆叠在一起,常用于制作复杂的背景或者图标。每个子Drawable可以通过`android:top`, `android:right`, `android:bottom`, `android:left`...

    android Drawable分类汇总

    10. **`LayerDrawable`**:可以将多个 `Drawable` 重叠在一起,形成层次感更强的图像。 11. **`LevelListDrawable`**:根据当前的状态(如进度条的不同阶段),显示不同的 `Drawable`。 12. **`TransitionDrawable...

    Android Drawable Test

    在这个项目中,`testDrawable`可能包含了各种不同类型的Drawable资源,用于演示它们在实际应用中的使用。 Drawable在Android中扮演着多种角色,它可以是简单的颜色、图片、形状,甚至是复杂的动画。以下是一些关于...

    安卓Andriod源码——drawable(图片).zip

    本资料包“安卓Android源码——drawable(图片).zip”可能包含了Android系统或应用中使用的各种drawable资源,这些资源通常是XML文件,用于描述图形的属性和行为。 Drawable在Android中的主要功能包括: 1. **图片...

    Android开发指南-二维图形[文].pdf

    文档提供了一段示例代码来说明如何在`onCreate`方法中创建`LinearLayout`,并添加一个`ImageView`来展示Drawable资源。在示例中,`ImageView`被添加到`LinearLayout`中,并将这个布局设置为当前Activity的内容视图。...

Global site tag (gtag.js) - Google Analytics