android.graphics.drawable.Drawable是个虚类。 state of this Drawable. . final void setCallback(Drawable.Callback cb) Bind a Drawable.Callback object to this Drawable. void that clips another Drawable based on this Drawable's current level value. :drawable attribute (android:drawable="@color/green 在values下的Colors.xml文件: <?
列表中的每个drawable都按照列表的顺序绘制 - 列表中的最后一个drawable绘制在顶部。每个drawable由单个<layer-list>元素内的<item>元素表示。 请记住,LayerList中的item也可以是图像或任何其他类型的drawable。你可以使用它来创建更复杂的drawable,并将多个drawable叠加在一起。在官方文档中查看更多示例。 自定义 Button 创建自定义按钮需要至少组合一个drawable的状态列表和一个drawable的形状。 要做到这一点,我们需要创建一个状态列表drawable来表示res / drawable / states_nice_button.xml中每个状态的drawable。 <? ④ ClipDrawable - 在XML中定义一个drawable,根据这个Drawable的当前级别剪切另一个drawable。最常用来实现诸如进度条之类的东西。
Drawable简介 Drawable有很多种,用来表示一种图像的概念,但他们又不完全是图像,他们是用过颜色构建出来的各种图像的表现形式。 Drawable一般都是通过xml来定义的 ,当然我们也可以通过代码来创建,Drawable是一个抽象的类,是所以Drawable的基类,每个具体的Drawable都是它的子类,如ShapeDrawable drawable作为子节点。 ="@drawable/layer1" /> <item android:drawable="@drawable/layer2" /> <item android:drawable="@ ="@drawable/level1" /> <item android:maxLevel="4000" android:drawable="@drawable
Drawable ? 固有高/宽 & 大小 ? 我们知道平常使用最多的Drawable可能是图片了,我们知道一个图片的原本的尺寸,比如下面这个图: ? ? 可以缩放的Drawable,效果如下: ? 具体的使用可以参考这篇文章:Android Drawable - Scale Drawable使用详解 ClipDrawable: ? Drawable集合的意思是这些Drawable可以放多个Drawable,比如可以放多个图片资源在里面。 LayerDrawable ? ="@drawable/search_bg"/> <item android:drawable="@drawable/search" android:right="60dp" 具体可以参考这篇文章:Android Drawable - Layer Drawable使用详解 StateListDrawable ?
参考 http://blog.csdn.net/yuzhiyuxia/article/details/8806488 Android内置了如下几种Drawable类型: BitmapDrawable Drawable LayerDrawable Drawable子类之——LayoutDrawable (图层叠加) LevelListDrawable Drawable子类之——LevelListDrawable (等级列表图片 @drawable/button_focused" /> <! --默认--> <item android:drawable="@drawable/button_normal" /> <! ="@<em>drawable</em>/rocket_thrust1" android:duration="200" /> <item android:drawable="@drawable/rocket_thrust2
关于drawable资源笔者之前有写过两篇文章: Android-自定义图像资源的使用(1) Android-自定义图像资源的使用(2) 这里笔者就不做过多的赘述,我们从实际开发的角度去理解这个知识点,
下载地址 :http://plugins.jetbrains.com/plugin/7658
image.png Drawable Drawable是一种可以在Canvas上进行绘制的抽象的概念,颜色、图片等都可以是一个Drawable。 Drawable可以通过XML定义,或者通过代码创建。 Android中Drawable是一个抽象类,每个具体的Drawable都是其子类。 简单来讲,其可以理解为:图像。 image.png Drawable的分类 主要包括: image.png BitmapDrawable 表示一种图片,可以直接引用原始图片或者通过XML进行描述 例如: <? shape标签创建的Drawable实体是GradientDrawable 实例: <?xml version="1.0" encoding="utf-8"? 标签 纯色填充 与gradient标签排斥 stroke标签 描边 有描边线和虚线 size标签 表示shape的固有大小,并非最终显示的大小 没有时getIntrinsicWidth返回-1;能指明Drawable
之前也有接触过 android, 但是只是一些简单的打包之类的工作, 没涉及到太多的代码编写, 不过也知道一些 android 工程的文件树结构, 现在开始学习 android 的时候发现 drawable 在之前的4.0版本中 res 目录下有 drawable-hdpi drawable-mdpi之类的文件件,在6.0下新建的工程结构变成如下结构的了: ? 所以在引用图片的时候也有变化了, 之前在 layout 中引用图片是@drawable/xxxx, 而现在变为@mipmap/xxxx, 当然了, 如果新的图片资源放在 drawable 下的话,引用方式还是 @drawable/xxxx
文章导航 Android动画-概述 Drawable Animation使用方式 View Animation使用方式 Property Animation使用方式 概述 Drawable Animation ="@drawable/frame_1" android:duration="200" /> <item android:drawable="@drawable/frame_2" android :duration="200" /> <item android:drawable="@drawable/frame_3" android:duration="200" /> <item android:drawable="@drawable/frame_4" android:duration="200" /> </animation-list> 其中android:oneshot=" ="@drawable/login_loading_00" /> <item android:drawable="@drawable/login_loading_10" />
由于对Drawable、Bitmap、Canvas、Paint和 Matrix 的关系和使用 一直不太清楚,就在网上搜集了一下,摘录一些,主要来看这两篇文章:Drawable、Bitmap、Canvas 和Paint的关系以及部分使用方法 和 Android显示系统之Pixel、Bitmap、Drawable、Canvas、Paint和Matrix之间的联系 首先让我们理解下Android平台中的显示类是 Drawable – 作为Android下通用的绘制图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。 Drawable to–> Bitmap BitmapDrawable 继承自 Drawable //方法一 Resources res; InputStream is=res.openRawResource Bitmap to–> Drawable Drawable d = new BitmapDrawable(bitmap); 3.
下面我们尝试做点改变,将android_logo.png这张图移动到drawable-xhdpi文件夹下,注意不是复制一份到drawable-xhdpi文件夹下,而是将图片移动到drawable-xhdpi -> drawable-hdpi -> drawable-mdpi -> drawable-ldpi。 我们再来试验一次,将图片移动到drawable-xxxhdpi目录下。 ,但如果将这张图放到drawable-xhdpi或drawable-xxhdpi下就不会崩掉,其实就是这个道理。 就目前来讲,最佳放置图片资源的文件夹就是drawable-xxhdpi。那么有的朋友可能会问了,不是还有更高密度的drawable-xxxhdpi吗?干吗不放在这里?
android.graphics.drawable源码目录下的drawable有十几种,博主就不一一介绍了,只说说一些常见的用法,以及容易弄错的地方。 Drawable资源目录 drawable文件放在res目录的各个drawable目录下,\res\drawable一般放的是描述性的xml文件,图片文件一般放在具体分辨率的drawable目录下。 例如 drawable-ldpi里面主要放低分辨率的图片,如QVGA(240×320) drawable-mdpi里面主要放中等分辨率的图片,如HVGA(320×480) drawable-hdpi Drawable的状态 简单的drawable都是静态的图形,现在我们让它动一下,根据不同的触摸情况来变更图形,这时就要用到Drawable的一个子类StateListDrawable。 ="@drawable/common_jia_selected" /> <item android:drawable="@drawable/common_jia_normal" /> </selector
下载gif-drawable包和Demo的链接:http://pan.baidu.com/s/1eQxVKRo 本帖原创,转载的朋友请注明转载地址》:http://www.cnblogs.com/zxxiaoxia /src_anim" android:background="@drawable/bg_anim" /> 这里多说一下,gif-Drawable一共提供了3中可以显示动态图片的控件:GifImageView 也就是说gif-drawable比ImageView更强大。 /left_anim" android:drawableStart="@drawable/left_anim" android:background="@drawable/bg_anim 4、进阶:控制gif图片,停止播放动态图和开始动态图 gif-drawable这个控件,实际上是实现了Animatable 和 MediaPlayerControl这两个接口。
inset标签的可设置属性如下: android:drawable 指定drawable资源,如果不设置该属性,也可以定义drawable类型的子标签 android:visible 设置初始的可见性状态 level-list可以管理一组drawable,每个drawable设置一组level范围,最终会根据level值选取对应的drawable绘制出来。 level-list通过添加item子标签来添加相应的drawable,其下的item只有三个属性: android:drawable 指定drawable资源,如果不设置该属性,也可以定义drawable @drawable/on" /> <item android:drawable="@drawable/off" /></transition> transition标签生成的Drawable对应的类为 animated-rotate rotate标签只是将原有的drawable转个角度变成另一个drawable,它是静态的。而animated-rotate则会让drawable不停地做旋转动画。
前言 通常我们在res/drawable下面自定义shape和selector来满足一些UI的设计,但是由于xml最终转换为drawable需要经过IO或反射创建,会有一些性能损耗,另外随着项目的增大和模块化等 那么通过代码直接创建这些drawable,可以在一定程度上降低这些副作用。本篇介绍用kotlin DSL简洁的语法特性来实现常见的drawable。 xml变成drawable,通过android.graphics.drawable.DrawableInflater这个类来IO解析标签创建,然后通过解析标签再设置属性: //标签创建 private extends Drawable> clazz = mClassLoader.loadClass(className).asSubclass(Drawable.class); : Drawable?)
前言 通常我们在res/drawable下面自定义shape和selector来满足一些UI的设计,但是由于xml最终转换为drawable需要经过IO或反射创建,会有一些性能损耗,另外随着项目的增大和模块化等 那么通过代码直接创建这些drawable,可以在一定程度上降低这些副作用。本篇介绍用kotlin DSL简洁的语法特性来实现常见的drawable. 代码对应效果预览 ? ? ? ? ? xml变成drawable,通过android.graphics.drawable.DrawableInflater这个类来IO解析标签创建,然后通过解析标签再设置属性: //标签创建 private extends Drawable> clazz = mClassLoader.loadClass(className).asSubclass(Drawable.class); : Drawable?)
使用DrawerLayout运行时报错: android invalid drawable tag vector 怎么也找不到原因,后来抱着试试的心态在gradle中修改了appcompat-v7依赖包
如果我们要单独制作一份不共享的可绘制对象,就调用如下方法来返回: public Drawable mutate() 上面是Drawable基类的一些属性和方法的介绍,下面分别介绍系统提供的Drawable public InsetDrawable(Drawable drawable, int inset); public InsetDrawable(Drawable drawable, int insetLeft 你可以在构造中指定缩放的比例和缩放的中心点,注意的是所缩放的Drawable对象的level不能为0: public ScaleDrawable(Drawable drawable, int gravity 您也可以动态的替换掉某个标识ID下对应的Drawable对象: public boolean setDrawableByLayerId(int id, Drawable drawable) //替换 您可以调用如下方法来设置某个等级区间值下显示的可绘制对象: public void addLevel(int low, int high, Drawable drawable) 这个方法添加某个Drawable
StateListDrawable 表示一个Drawable的集合且每个Drawable对应着View的一种状态。 ="@drawable/common_next_bg_pressed" /> <item android:drawable="@drawable/common_next_bg" /> </selector A bitmap is a Drawable. A Drawable is not necessarily a bitmap. 第一个方法:setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom ——笔者翻译 第二种方法:setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom) api 原文为