Drawable 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
可绘制是“可以绘制的东西”的一般抽象。
[Android.Runtime.Register("android/graphics/drawable/Drawable", DoNotGenerateAcw=true)]
public abstract class Drawable : Java.Lang.Object
[<Android.Runtime.Register("android/graphics/drawable/Drawable", DoNotGenerateAcw=true)>]
type Drawable = class
inherit Object
- 继承
- 派生
- 属性
注解
可绘制是“可以绘制的东西”的一般抽象。 通常,你将处理 Drawable 作为检索到的资源类型,以便将内容绘制到屏幕;Drawable 类提供了一个泛型 API,用于处理可能采用多种形式的基础视觉资源。 与 a android.view.View
不同,Drawable 没有任何用于接收事件或与其他用户交互的设施。
除简单绘图外,Drawable 还提供许多泛型机制,使客户端能够与正在绘制的内容进行交互:
<ul><li> 方法 #setBounds
<var>必须</var> 调用,以告诉绘图器绘制的位置及其大小。 所有绘图器应遵循所请求的大小,通常只需缩放其图像即可。 客户端可以使用和#getIntrinsicWidth
方法查找某些绘图器#getIntrinsicHeight
的首选大小。
<li> 此方法 #getPadding
可以从一些 Drawables 信息中返回有关如何设置放置在其中的内容的框架信息。 例如,作为按钮小组件的框架的 Drawable 需要返回正确放置标签本身的填充。
<li> 此方法 #setState
允许客户端告诉绘制的绘图器,例如“焦点”、“选定”等。某些可绘制器可能会根据所选状态修改其图像。
<li> 此方法 #setLevel
允许客户端提供可以修改绘图的单个连续控制器,例如电池电量或进度级别。 某些可绘制器可能会根据当前级别修改其图像。
<li> A Drawable 可以通过接口回调客户端 Callback
来执行动画。 所有客户端都应支持此接口(通过 #setCallback
),以便动画正常工作。 执行此操作的一种简单方法是通过系统设施,如 android.view.View#setBackground(Drawable)
和 android.widget.ImageView
。 </ul>
虽然通常对应用程序不可见,但 Drawables 可能采用各种形式:
<ul><li><b>Bitmap</b>:最简单的可绘制、PNG 或 JPEG 图像。 <li><b>Nine Patch</b>:PNG 格式的扩展允许它指定有关如何拉伸和放置内容的信息。 <li><b>Vector</b>:XML 文件中定义为一组点、线条和曲线的可绘制对象,以及其关联的颜色信息。 这种类型的可绘制可缩放,而不会丢失显示质量。 <li><b>Shape</b>:包含简单的绘图命令,而不是原始位图,因此在某些情况下可以更好地调整大小。 <li><b>层</b>:复合可绘制,可绘制多个基础可绘制器。 <li><b>States</b>:基于其状态选择一组可绘制对象的复合可绘制器。 <li><b>Level</b>:一个复合可绘制器,它基于其级别选择一组可绘制器之一。 <li><b>Scale</b>:具有单个子级可绘制的复合绘图器,其整体大小根据当前级别进行修改。 </ul>
“Custom”><h3>自定义可绘制器</h3>
所有版本的 Android 都允许在运行时扩展和使用 Drawable 类,以取代框架提供的可绘制类。 从头开始 android.os.Build.VERSION_CODES#N API 24
,自定义可绘制类也可用于 XML。
<strong Note:</strong>> Custom drawable 类只能从应用程序包中访问。 其他应用程序将无法加载它们。
自定义可绘制类至少必须在 Drawable 上实现抽象方法,并且应重写 Drawable#draw(Canvas)
用于绘制内容的方法。
自定义可绘制类可在 XML 中以多种方式使用: <ul><li> 使用完全限定的类名称作为 XML 元素名称。 对于此方法,自定义可绘制类必须是公共顶级类。
<com.myapp.MyCustomDrawable xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#ffff0000" />
</li><> 使用 <em>drawable</em> 作为 XML 元素名称,并从 em>类/em> 属性指定完全限定的类<名<。 此方法可用于公共顶级类和公共静态内部类。
<drawable xmlns:android="http://schemas.android.com/apk/res/android"
class="com.myapp.MyTopLevelClass$InnerCustomDrawable"
android:color="#ffff0000" />
</li></ul>
<div class=“special reference”><h3>Developer Guides</h3>
有关如何使用绘图器的详细信息,请阅读 Canvas 和 Drawables 开发人员指南。 有关创建可绘制资源(可在代码中加载的 XML 或位图文件)的信息和示例,请阅读 “可绘制资源” 文档。
</div>
适用于 . 的 android.graphics.drawable.Drawable
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
Drawable() |
可绘制是“可以绘制的东西”的一般抽象。 |
Drawable(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
Alpha |
获取可绘制的当前 alpha 值。 |
AutoMirrored |
指示当此绘图器布局方向为 RTL 从右到左时,是否会自动镜像此绘图。 - 或 - 设置此绘图器是否在布局方向为 RTL(从右到左)时自动镜像。 |
Bounds |
返回可绘制的边界 Rect。 - 或 - 为绘图对象指定边界矩形。 |
Callback |
返回附加到此 Drawable 的当前 |
ChangingConfigurations |
返回此可绘制结果可能会更改的配置参数的掩码,要求重新创建它。 - 或 - 设置此可绘制参数可能更改的配置参数的掩码,要求重新创建它。 |
Class |
返回此 |
ColorFilter |
返回当前颜色筛选器,或者 |
Current |
可绘制是“可以绘制的东西”的一般抽象。 |
DirtyBounds |
返回可绘制的脏边界 Rect。 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
HasFocusStateSpecified |
指示此可绘制器是否至少有一个显式指定 |
IntrinsicHeight |
返回可绘制器的内部高度。 |
IntrinsicWidth |
返回可绘制器的内部宽度。 |
IsFilterBitmap |
可绘制是“可以绘制的东西”的一般抽象。 |
IsProjected |
此可绘制的请求投影。 |
IsStateful |
指示此可绘制器是否会根据状态更改其外观。 |
IsVisible |
可绘制是“可以绘制的东西”的一般抽象。 |
JniIdentityHashCode |
可绘制是“可以绘制的东西”的一般抽象。 (继承自 Object) |
JniPeerMembers |
可绘制是“可以绘制的东西”的一般抽象。 |
LayoutDirection |
返回此绘图的已解析布局方向。 |
Level |
检索当前级别。 |
MinimumHeight |
返回此绘图器建议的最小高度。 |
MinimumWidth |
返回此绘图器建议的最小宽度。 |
Opacity |
返回此 Drawable 的不透明度/透明度。 |
OpticalInsets |
返回此 Drawable 建议的布局内集,以便在布局期间用于对齐操作。 |
PeerReference |
可绘制是“可以绘制的东西”的一般抽象。 (继承自 Object) |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
TransparentRegion |
返回一个表示完全透明的 Drawable 部分的区域。 |
方法
显式接口实现
IJavaPeerable.Disposed() |
可绘制是“可以绘制的东西”的一般抽象。 (继承自 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
可绘制是“可以绘制的东西”的一般抽象。 (继承自 Object) |
IJavaPeerable.Finalized() |
可绘制是“可以绘制的东西”的一般抽象。 (继承自 Object) |
IJavaPeerable.JniManagedPeerState |
可绘制是“可以绘制的东西”的一般抽象。 (继承自 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
可绘制是“可以绘制的东西”的一般抽象。 (继承自 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
可绘制是“可以绘制的东西”的一般抽象。 (继承自 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
可绘制是“可以绘制的东西”的一般抽象。 (继承自 Object) |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
可绘制是“可以绘制的东西”的一般抽象。 |
GetJniTypeName(IJavaPeerable) |
可绘制是“可以绘制的东西”的一般抽象。 |