`

Android Drawable总结

阅读更多

Drawable有几种

1:Bitmap

       支持格式:.png (preferred), .jpg (acceptable), .gif (discouraged).

将Bitmap文件放在drawable文件夹下会被AAPT自动优化

2:XML Bitmap

       An XML bitmap is a resource defined in XML that points to a bitmap file. 

       The effect is an alias for a raw bitmap file

       <?xml version="1.0" encoding="utf-8"?>

<bitmap

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:src="@[package:]drawable/drawable_resource"

    android:antialias=["true" | "false"]

    android:dither=["true" | "false"]    抖动??

    android:filter=["true" | "false"]    控制图片是否缩放或则拉伸

    android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |

                      "fill_vertical" | "center_horizontal" | "fill_horizontal" |

                      "center" | "fill" | "clip_vertical" | "clip_horizontal"]

    android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />

    Defines the tile mode. When the tile mode is enabled, the bitmap is repeated. 

    Gravity is ignored when the tile mode is enabled.

3:Nine-Patch

     You typically assign this type of image as the background of a View 

     that has at least one dimension set to "wrap_content", 

     and when the View grows to accomodate the content,

     the Nine-Patch image is also scaled to match the size of the View

4:XML Nine-Patch

     An XML Nine-Patch is a resource defined in XML that points to a Nine-Patch file.

     The XML can specify dithering for the image

     <?xml version="1.0" encoding="utf-8"?>

<nine-patch

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:src="@[package:]drawable/drawable_resource"

    android:dither=["true" | "false"] />  图片与屏幕像素不一样的时候,会拉伸?

5:Layer List

    A LayerDrawable is a drawable object that manages an array of other drawables.

    <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" ></item>

    </layer-list>

    <item></item>标签里可以利用<bitmap/>标签装载图片,此时图片将不会被拉伸。

    <item>

        <bitmap android:src="@drawable/image"

             android:gravity="center" />

    </item>

6:State List

    不同状态显示不同的图片 常用于背景

    During each state change, the state list is traversed top to bottom and the first item 

    that matches the current state is used—the selection is not based on the "best match," 

    but simply the first item that meets the minimum criteria of the state.

    <?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"

          android:drawable="@drawable/button_pressed" /> <!-- pressed -->

    <item android:state_focused="true"

          android:drawable="@drawable/button_focused" /> <!-- focused -->

    <item android:state_hovered="true"

          android:drawable="@drawable/button_focused" /> <!-- hovered -->

    <item android:drawable="@drawable/button_normal" /> <!-- default -->

</selector>

7:Level List 有什么用

     A Drawable that manages a number of alternate Drawables, each assigned a maximum numerical value.

     Setting the level value of the drawable with setLevel() loads the drawable resource in the level list 

     that has a android:maxLevel value greater than or equal to the value passed to the method.

      <level-list xmlns:android="http://schemas.android.com/apk/res/android" >

          <item

              android:drawable="@drawable/status_off"

              android:maxLevel="0" />

          <item

              android:drawable="@drawable/status_on"

              android:maxLevel="1" />

       </level-list>

8:Transition Drawable  可以让两张图片同时淡入淡出(也只能包含两张图片)

      <?xml version="1.0" encoding="utf-8"?>

         <transition xmlns:android="http://schemas.android.com/apk/res/android">

            <item android:drawable="@drawable/on" />

            <item android:drawable="@drawable/off" />

         </transition>

9:Inset Drawable

    A drawable defined in XML that insets another drawable by a specified distance. 

   This is useful when a View needs a background that is smaller than the View's actual bounds.

   <inset xmlns:android="http://schemas.android.com/apk/res/android"

    android:drawable="@drawable/background"

    android:insetTop="10dp"

    android:insetLeft="10dp" />

10:Clip Drawable 把原图的长,宽,厚度都分成10000level,以此切割

    <?xml version="1.0" encoding="utf-8"?>

         <clip xmlns:android="http://schemas.android.com/apk/res/android"

    android:drawable="@drawable/android"

    android:clipOrientation="horizontal"

    android:gravity="left" /> 

    ImageView imageview = (ImageView) findViewById(R.id.image);

    ClipDrawable drawable = (ClipDrawable) imageview.getDrawable();

    drawable.setLevel(drawable.getLevel() + 1000);

    Increasing the level reduces the amount of clipping and slowly reveals the image.

11:Scale Drawable

     A drawable defined in XML that changes the size of another drawable based on its current level.

     <?xml version="1.0" encoding="utf-8"?>

<scale xmlns:android="http://schemas.android.com/apk/res/android"

   android:drawable="@drawable/logo"

     android:scaleGravity="center_vertical|center_horizontal"

   android:scaleHeight="80%"

   android:scaleWidth="80%" />

12:Shape Drawable

       <shape

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:shape=["rectangle" | "oval" | "line" | "ring"] >

    <corners

        android:radius="integer"

        android:topLeftRadius="integer"

        android:topRightRadius="integer"

        android:bottomLeftRadius="integer"

        android:bottomRightRadius="integer" />

    <gradient

        android:angle="integer"    必须是45的倍数,0:从左到右,90:从下到上

        android:centerX="integer"

        android:centerY="integer"

        android:centerColor="integer"

        android:endColor="color"

        android:gradientRadius="integer"     android:type="radial"时有效,  放射状

        android:startColor="color"

        android:type=["linear" | "radial" | "sweep"]

        android:useLevel=["true" | "false"] />

    <padding

        android:left="integer"

        android:top="integer"

        android:right="integer"

        android:bottom="integer" />

    <size                            默认是填满控件

        android:width="integer"

        android:height="integer" />

    <solid

        android:color="color" />

    <stroke

        android:width="integer"

        android:color="color"

        android:dashWidth="integer"     跟下面一个属性配套,要一起设置才有效

        android:dashGap="integer" />

</shape>

 

    若要有不清楚的,请查看官方文档:http://developer.android.com/guide/topics/resources/drawable-resource.html

分享到:
评论

相关推荐

    android drawable

    总结来说,`android drawable`是一个介绍Android平台中图形资源管理的关键主题,涵盖了`Drawable`的类型、创建、使用和优化等方面,帮助开发者理解如何在Android应用中灵活地显示和控制图形元素。`e_16_1 ...

    android drawable下的xml详解

    ### Android Drawable 下的 XML 详解 #### 一、概述 在Android开发中,`drawable`是一种非常重要的资源类型,主要用于存放应用所需的图形图像资源。这些资源可以被用于UI设计、图标绘制等多种场景。通常,开发者会...

    Android用drawable实行属性按钮3种状态demo

    总结来说,Android的`drawable`资源允许开发者方便地创建和管理按钮的多种状态,提供丰富的交互反馈。通过定义选择器和图层列表,我们可以自定义按钮在不同状态下的样式,提升应用的用户体验。在实际开发中,还可以...

    android Drawable分类汇总

    ### Android Drawable 分类详解 #### 一、概述 在 Android 开发中,`Drawable` 是一个非常重要的概念,它主要用于定义界面中的图形图像资源。`Drawable` 的具体实现类多种多样,可以用来创建复杂的视觉效果,例如...

    android-drawable-importer-intellij-plugin-AS36.zip

    总结起来,Android Drawable Importer插件是Android Studio 3.6.x开发环境中一个强大的工具,它有效地解决了绘图资源管理的问题,让开发者可以更专注于代码编写和应用逻辑的设计。借助这个插件,你可以节省大量的...

    Drawable的基础demo

    总结一下,`Drawable`是Android UI开发中的核心组成部分,它允许开发者创建各种复杂的图形和动画效果。通过学习和掌握`Drawable`的使用,我们可以让应用的界面更加丰富多彩,提升用户体验。在这个"Drawable基础Demo...

    android_Drawable、Bitmap、byte[]之间的转换.doc

    ### Android中Drawable、Bitmap与byte[]之间的转换 在Android应用开发过程中,经常需要对图像资源进行处理,这就涉及到了不同图像格式之间的转换。本文将详细介绍`Drawable`、`Bitmap`及`byte[]`三者之间的转换方法...

    androiddrawable文档解释.pdf

    总结来说,Android中的drawable资源管理和图形绘制涉及到`Resources`对象的使用,`Drawable`子类的实例化,`Paint`对象的配置以及`Canvas`上的绘图操作。熟练掌握这些概念和技术对于创建动态、美观的Android界面至关...

    自定义Drawable 实现图片圆角、圆形、椭圆形

    总结来说,自定义Drawable是Android开发中的一个重要技能,它能帮助我们实现更灵活的UI设计和优化性能。通过学习和实践如何自定义Drawable实现图片的圆角、圆形和椭圆形,开发者可以提升自己的技术水平,创造出更具...

    android动画之帧动画(drawable animation)和补间动画(view animation)

    总结来说,Android的帧动画和补间动画提供了丰富的动画机制,开发者可以根据需求选择合适的方式来创建各种动态效果。在“太阳地球月亮”模型中,帧动画可以用于地球自转,补间动画则适用于地球和月球的公转。理解并...

    Android属性动画——自定义Drawable(Robots)

    在Android开发中,属性...总结,Android属性动画和自定义Drawable的结合为开发者提供了无尽的创造力。通过对"Robots"这样的示例的实践,我们可以更好地理解和掌握这一技术,从而在实际开发中打造更具吸引力的用户界面。

    android:drawable.xml相关应用

    ### Android: Drawable.xml 相关应用详解 #### 一、Drawable资源文件的使用与功能介绍 在Android开发中,`drawable.xml` 文件是用于定义UI元素的重要资源之一,它可以为应用提供灵活多变的视觉效果。例如,按钮、...

    Android自定义Drawable实现圆形和圆角

    "Android自定义Drawable实现圆形和圆角" Android自定义Drawable实现圆形和圆角是Android开发中一个非常重要的技术点,掌握这项技术可以让开发者更好地实现图形处理和自定义控件的开发。 圆形Drawable实现 圆形...

    玩转Android之Drawable的使用

    总结,掌握Android中的Drawable使用是提高应用视觉效果和交互性的关键。通过深入理解各种Drawable的特性和用法,开发者能够更加自如地创建和控制应用的UI元素,从而打造更具吸引力和功能性的移动应用。

    Android图像介绍-Drawable

    在Android开发中,...总结来说,Android的Drawable系统是图像处理的核心,它提供了丰富的类型和功能,满足了各种图像显示和交互的需求。了解并熟练运用Drawable,将有助于提升Android应用的用户体验和视觉效果。

    用 Drawable 实现一个自定义电池图标

    总结一下,通过Android的Drawable和自定义View,我们可以轻松地实现一个功能齐全的电池图标。这种做法不仅提高了代码的可复用性,也使得UI设计更加灵活。了解并熟练掌握Drawable的使用,对于Android开发者来说是非常...

    浅谈Android中Drawable使用知识总结

    "浅谈Android中Drawable使用知识总结" Drawable是Android中一个重要的组件,主要用于绘制图形和图片。在Android开发中,Drawable是一个轻量级的图形对象,可以单独使用,也可以作为View的一部分。Drawable可以分为...

    android-gif-drawable-master.zip_android_android gif

    总结一下,`android-gif-drawable`是一个强大的工具,使得在Android应用中处理GIF变得简单且高效。它可以作为一个ImageView的源,提供了丰富的控制选项,同时优化了内存管理和性能。通过这个库,开发者可以方便地为...

    Android中一种巧妙的drawable.xml替代方案分享

    Android drawable.xml 替代方案分享 本文主要介绍了 Android 中一种巧妙的 drawable.xml 替代方案,通过 DataBinding 实现 drawable 的动态生成,解决了传统方案的缺陷,提高了开发效率和可读性。 一、传统方案...

    android-gif-drawable-1.1.7源码

    总结,`android-gif-drawable-1.1.7`是一个强大且易用的库,为Android开发者提供了便利的GIF处理工具。通过深入理解其源码,开发者可以更好地利用这个库,提高应用程序的用户体验。无论是初学者还是经验丰富的开发者...

Global site tag (gtag.js) - Google Analytics