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.
res/drawable/filename.xml
The filename is used as the resource ID.
LayerDrawable
.R.drawable.filename
In XML:
@[package:]drawable/filename
<?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>
<layer-list>
<item>
elements.
attributes:
xmlns:android
"http://schemas.android.com/apk/res/android"
.<item>
<selector>
element. Accepts child <bitmap>
elements.
attributes:
android:drawable
android:id
"@+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
android:right
android:bottom
android:left
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>
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:
相关推荐
在Android开发中,Drawable资源是用于管理应用中各种图形元素,如图片、颜色、形状等的关键组成部分。了解和熟练掌握Drawable资源的管理与图片处理,对于优化应用性能和提升用户体验至关重要。以下是一些关于...
每个`<item>`标签代表一个Drawable层,可以通过设置`android:top`, `android:bottom`, `android:left`, `android:right`属性来调整各层的位置,或者通过`android:drawable`指定Drawable资源,甚至可以设置`android:...
本篇文章将深入探讨Android中的Drawable资源及其在压缩包"drawable(图片).zip"中的应用。 首先,Drawable是Android系统中用于表示图形对象的接口,它可以是位图(Bitmap)、形状(Shape)、动画(Animation)等。在...
本资源包“android安卓APP之13种Drawable位图片资源.zip”涵盖了Android开发中常见的13种Drawable类型,这些类型极大地丰富了Android应用的视觉表现和动态效果。下面将详细介绍每种Drawable的特性和用法。 1. **...
`Drawable`还可以进行组合,例如,通过`LayerDrawable`可以叠加多个`Drawable`,创建复杂的视觉效果。此外,`StateListDrawable`可以根据视图的状态(如按下、选中等)来显示不同的`Drawable`。 在实际开发中,`...
【玩转Android之Drawable的使用】 Drawable在Android开发中扮演着至关重要的角色,它是图形和图像的基础元素,广泛用于UI设计和自定义视图。在Android中,Drawable不仅仅局限于简单的图片,还包括各种复杂的图形和...
**ColorDrawable**是最简单的`drawable`类型之一,它用于表示一个单一颜色的绘制区域。在XML布局文件中,可以通过`<color>`标签来定义一个颜色资源,并通过`android:color`属性指定具体的颜色值。例如,以下XML代码...
在Android项目的res/drawable目录下,开发者通常会根据需要将这些Drawable资源放入相应的子文件夹,如drawable-mdpi、drawable-hdpi等,以确保在不同密度的设备上正确显示。此外,Android Studio还支持vector ...
本示例"DrawableSample"将深入探讨如何在Android应用程序中使用和管理Drawable资源,以及它们在UI设计和交互中的重要性。 首先,Drawable在Android中主要用于设置图像、背景或者按钮等组件的外观。它提供了丰富的...
1. **BitmapDrawable**:这是基于位图图像的Drawable,通常从本地文件、资源或网络加载。你可以通过`BitmapFactory.decodeResource()`方法或`BitmapDrawable(Bitmap)`构造函数创建BitmapDrawable。 2. **...
在Android资源文件中,我们通常通过XML定义`Drawable`,例如在`res/drawable`目录下创建一个XML文件,里面可以定义一个`shape`,设置其形状、颜色、边框等属性。例如: ```xml <solid android:color="#FF0000" />...
`Drawable`是Android中表示图形对象的接口,它可以是一个简单的颜色、位图、九宫格图像(Nine-Patch)或者更复杂的组合,如层叠的`LayerDrawable`或选择器`StateListDrawable`。`Drawable`主要用于设置按钮、背景等...
BitmapDrawable是最基础的Drawable类型,用于展示位图资源,比如从本地文件、网络或资源ID加载的图片。可以通过设置BitmapDrawable的BitmapOptions来调整缩放、裁剪和过滤等参数。 2. **Shape Drawable** Shape ...
5. **LayerDrawable** 和 **InsetDrawable**:LayerDrawable允许将多个Drawable堆叠在一起,常用于实现图层效果。InsetDrawable则可以为Drawable添加内边距,常用于确保Drawable在不同密度屏幕上的显示效果一致。...
3. **使用LayerDrawable和InsetDrawable**:为了组合多个Drawable,可以使用LayerDrawable。它允许你在一个Drawable中堆叠多个子Drawable,通过设置各自的层级和位置。此外,InsetDrawable可用于为Drawable添加内...
6. **层叠Drawable(LayerDrawable)**: 层叠Drawable允许将多个Drawable堆叠在一起,常用于制作复杂的背景或者图标。每个子Drawable可以通过`android:top`, `android:right`, `android:bottom`, `android:left`...
10. **`LayerDrawable`**:可以将多个 `Drawable` 重叠在一起,形成层次感更强的图像。 11. **`LevelListDrawable`**:根据当前的状态(如进度条的不同阶段),显示不同的 `Drawable`。 12. **`TransitionDrawable...
在这个项目中,`testDrawable`可能包含了各种不同类型的Drawable资源,用于演示它们在实际应用中的使用。 Drawable在Android中扮演着多种角色,它可以是简单的颜色、图片、形状,甚至是复杂的动画。以下是一些关于...
本资料包“安卓Android源码——drawable(图片).zip”可能包含了Android系统或应用中使用的各种drawable资源,这些资源通常是XML文件,用于描述图形的属性和行为。 Drawable在Android中的主要功能包括: 1. **图片...
文档提供了一段示例代码来说明如何在`onCreate`方法中创建`LinearLayout`,并添加一个`ImageView`来展示Drawable资源。在示例中,`ImageView`被添加到`LinearLayout`中,并将这个布局设置为当前Activity的内容视图。...