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

Drawable资源

阅读更多
Drawable资源是对图像的一个抽象,你可以通过getDrawable(int)得到并绘制到屏幕上。这里有几种不同类型的Drawable: 

Bitmap File 
基本的Bitmap图像。Android支持几种不同格式的Bitmap文件:.png(最佳)、.jpg(可接受)、.gif(不要)。
注意:Bitmap文件可能会被aapt工具进行无损图像压缩优化。例如,一个真彩色的PNG(不超过256色)可能会被转换成一个带有颜色板的8位PNG。这样做能保证图片质量一样,但减少内存占用。因此,需要了解的是放在这个文件夹下的二进制图像在编译时可能会发生变更。如果你打算以位流方式读取图像来转化成Bitmap的话,可以把它们放到res/raw中,在这里,它们不会被优化。
 
File Location:
    res/drawable/filename.png (.png, .jpg, 或.gif)
    文件名会被当作资源ID使用。
Complied Resource Datatype:
    指向BitmapDrawable的资源指针。
Resource Reference:
    R.drawable.filename(Java)
    @[package:]drawable/filename(XML)
Example:
    在res/drawable/myimage.png位置保存了一张图片,在Layout XML中可以应用这个图片到一个View上:
    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/myimage" />
Shape 
定义在XML中的几何形状。 
File Location:
    res/drawable/filename.xml
    文件名将被当作资源ID使用。
Complied Resource Datatype:
    指向ShapeDrawable的资源指针。
Resource Reference:
    R.drawable.filename(Java)
    @[package:]drawable/filename(XML)
Syntax:
<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape=["rectangle" | "oval" | "line" | "ring"] > 
    <gradient 
        android:angle="integer" 
        android:centerX="integer" 
        android:centerY="integer" 
        android:centerColor="integer" 
        android:endColor="color" 
        android:gradientRadius="integer" 
        android:startColor="color" 
        android:type=["linear" | "radial" | "sweep"] 
        android:usesLevel=["true" | "false"] /> 
    <solid 
        android:color="color" /> 
    <stroke 
        android:width="integer" 
        android:color="color" 
        android:dashWidth="integer" 
        android:dashGap="integer" /> 
    <padding 
        android:left="integer" 
        android:top="integer" 
        android:right="integer" 
        android:bottom="integer" /> 
    <corners 
        android:radius="integer" 
        android:topLeftRadius="integer" 
        android:topRightRadius="integer" 
        android:bottomLeftRadius="integer" 
        android:bottomRightRadius="integer" /> 
</shape>
Elements:
    <shape>
              必须。必须是根元素。
    Attributes:
              android:shape
                  Keyword。定义Shape的类型。有效的值包括:
Value
Desciption
"rectangle"
矩形。默认形状。
"oval"
椭圆。
"line"
水平直线。需要<stroke>元素定义线的宽度。
"ring"
环形。
 
接下来的特性只能在android:shape=”ring”时使用:
              android:innerRadius
                  Dimension。内环的半径。
              android:innerRadiusRatio
         Float。以环的宽度比率来表示内环的半径。例如,如果android:innerRadiusRatio=”5”,内环半径等于环的宽度除以5。这个值可以被android:innerRadius覆盖。默认值是9。
              android:thickness
                  Dimension。环的厚度。
              android:thicknessRatio
          Float。以环的宽度比率来表示环的厚度。例如,如果android:thicknessRatio=”2”,厚度就等于环的宽度除以2。这个值可以被android:thickness覆盖。默认值是3。
              android:useLevel
                  Boolean。“true”表示可以当作LevelListDrawable使用。一般都为“false”。
   
<gradient>
              为Shape指定渐变色。
Attributes:
              android:angle
Integer。渐变色的角度值。0表示从左到右,90表示从下到上。必须是45的倍数,默认是0。
              android:centerX
                  Float。渐变色中心的X相对位置(0-1.0)。当android:type=”linear”时无效。
              android:centerY
                  Float。渐变色中心的Y相对位置(0-1.0)。当android:type=”linear”时无效。
              android:centerColor
                  Color。可选的颜色,出现在start和end颜色之间。
              android:endColor
                  Color。end颜色。
              android:gradientRadius
                  Float。渐变色的半径。当android:type=”radial”时有效。
              android:startColor
                  Color。start颜色。
android:type
                  Keyword。渐变色的样式。有效值为:
Value
Description
"linear"
线性渐变,默认值。
"radial"
环形渐变。start颜色是处于中间的颜色。
"sweep"
sweep渐变
              android:useLevel
                  Boolean。“true”表示可以当作LevelListDrawable使用。   
<solid>
              填充shape的单一色。
Attributes:
    android:color
                  Color。这个颜色会应用到shape上。   
<stroke>
              shape的线形。
    Attributes:
              android:width
                  Dimension。线的厚度。
              android:color
                  Color。线的颜色。
              android:dashGap
                  Dimension。间断线间的距离。仅在android:dashWidth设定时有效。
              android:dashWidth
                  Dimension。间断线的大小。仅在android:dashGap设定时有效。 
    <padding>
              内部View元素的边距。
    Attributes:
              android:left
                  Dimension。左内边距。
              android:top
                  Dimension。上内边距。
              android:right
                  Dimension。右内边距。
              android:bottom
                  Dimension。下内边距。 
    <corners>
              为shape创建圆角。当shape是一个矩形时有效。
    Attributes:
              android:radius
                  Dimension。圆角的半径。会被下面的特性覆盖。
              android:topLeftRadius
                  Dimension。左上圆角半径。
              android:topRightRadius
                  Dimension。右上圆角半径。
              android:bottomLeftRadius
                  Dimension。左下圆角半径。
              android:bottomRightRadius
                  Dimension。右下圆角半径。
 
Examples:
    XML文件保存在res/drawable/gradient_box.xml
 
<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient  
        android:startColor="#FFFF0000"  
        android:endColor="#80FF00FF" 
        android:angle="45"/> 
    <padding android:left="7dp"  
        android:top="7dp" 
        android:right="7dp"  
        android:bottom="7dp" /> 
    <corners android:radius="8dp" /> 
</shape>
    Layout XML将被当作ShapeDrawable应用到一个View上:
<TextView 
    android:background="@drawable/gradient_box" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" />

分享到:
评论

相关推荐

    Drawable资源管理图片处理

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

    android修改控件外观(使用drawable资源)

    在Android开发中,drawable资源是不可或缺的一部分,它主要用于定义图形、形状、背景等视觉元素,还可以用来改变控件的外观。本篇文章将深入探讨如何利用drawable资源来改变Android应用中的控件外观。 首先,...

    Android 将网络的Url资源转换为Drawable资源方式

    Android 将网络的Url资源转换为Drawable资源方式 Android 中将网络的Url资源转换为Drawable资源方式是应用开发中常见的需求。下面我们将详细介绍该方式的实现方法和相关知识点。 为什么需要将Url资源转换为...

    Android 中API之Drawable资源详解及简单实例

    Android 中的 Drawable 资源详解及简单实例 Android 中的 Drawable 资源是一种非常重要的资源,它可以用来定义视图的外观样式,如背景、边框、形状等。Drawable 资源可以分为两大类:一类是 Vector Drawable,一类...

    安卓换肤主题更换夜间模式相关-android修改控件外观使用drawable资源.rar

    android修改控件外观(使用drawable资源.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

    Android中Drawable分类汇总

    Drawable资源是抽象的图形对象,可以包括图片、颜色、渐变等多种形式。在Android SDK中,开发者通常不需要直接操作Drawable的底层实现类,而是通过XML文件来定义和使用Drawable资源,通过资源ID来引用它们。 ...

    drawable(图片).zip

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

    Android Drawable 各种高效用法

    在Android开发中,Drawable是图形资源的核心组成部分,用于在用户界面上绘制各种图像,如按钮、背景、图标等。理解并熟练运用Drawable的各种高效用法对于优化应用性能和提升用户体验至关重要。以下是一些关于Android...

    android drawable

    这个示例项目"android drawable"旨在展示如何在Android应用中有效地使用和显示`Drawable`资源。 `Drawable`在Android中扮演着多种角色,包括但不限于图片、背景、按钮状态、选择器等。它们可以通过XML或Java代码...

    android 通过图片名称获取 drawable 目录下的图片

    在Android开发过程中,有时我们需要动态地根据图片名称来加载Drawable资源。这种需求虽然不常见,但在某些特定场景下却显得尤为重要,比如实现一个自定义控件时,需要根据不同的条件加载不同的图片资源。 #### 实现...

    android中的drawable集合

    1. **Bitmap Drawable**: Bitmap Drawable是最基本的Drawable类型,用于显示位图资源。它可以是从本地文件系统、网络或资源文件中加载的PNG、JPEG等格式的图片。BitmapDrawable支持调整大小、缩放和颜色过滤等功能,...

    Drawable.pdf

    ### 可绘制资源(Drawable资源)在Android中的运用与解析 在Android开发中,`Drawable`资源扮演着至关重要的角色,它们是图像的一种抽象表示,主要用于界面设计中的图标、背景和其他视觉元素。`Drawable`资源的灵活...

    xUtils3源码(已添加drawable支持)

    3. **生命周期管理**:xUtils3考虑到Android应用的Activity和Fragment的生命周期,当组件被销毁时,会自动释放与之相关的Drawable资源,保证了应用的稳定性和内存效率。 4. **自定义转换**:xUtils3允许开发者...

    android drawable下的xml详解

    这意味着如果多个组件引用同一个`drawable`资源,那么对其中一个组件中的该资源进行修改,会影响到其他所有引用此资源的组件。因此,在修改`drawable`资源时需谨慎操作。 #### 三、内置Drawable 类型 Android内置...

    drawable(图片).rar

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

    Android Drawable 全部 xml 元素和属性用法

    - 使用Theme中的Drawable资源替代布局文件中的硬编码资源,以实现主题切换。 6. **自定义Drawable** 除了标准的Drawable类型,还可以通过继承`Drawable`类或`DrawableContainer`类(如`StateListDrawable`或`...

    系统drawable资源_1_0-190424082452.alp

    Android andlua androlua lua实战工程

    【Android开发API】应用程序资源-图形处理类资源-Drawable[参照].pdf

    在Android开发中,Drawable资源是极其重要的一部分,它包含了各种图形和图像的处理方式,能够被绘制到屏幕上。Drawable不仅仅是简单的图片,而是一种抽象的概念,它涵盖了多种图像表现形式。在Android API中,...

    Android的Drawable学习Demo

    在Android开发中,Drawable是图形和图像处理的重要组成部分,它涵盖了多种类型的图像资源,如颜色、形状、位图等。本篇文章将深入探讨...同时,合理地管理和复用Drawable资源也有助于减少应用的内存消耗和启动时间。

Global site tag (gtag.js) - Google Analytics