Cancvas

来源:互联网 发布:csol2优化 编辑:程序博客网 时间:2024/06/05 02:43
跳到内容导航
参考
 
  • 类索引
  • 包装索引
  • 安卓
  • android.accessibilityservice
  • android.accounts
  • android.animation
  • android.annotation
  • android.app
  • android.app.admin
  • android.app.assist
  • android.app.backup
  • android.app.job
  • android.app.usage
  • android.appwidget
  • android.bluetooth
  • android.bluetooth.le
  • android.companion
  • android.content
  • android.content.pm
  • android.content.res
  • android.database
  • android.database.sqlite
  • android.databinding
  • android.drm
  • android.gesture
  • android.graphics
    • 概观
    • 接口

      • 位图
      • BitmapFactory
      • BitmapFactory.Options
      • BitmapRegionDecoder
      • BitmapShader
      • BlurMaskFilter
      • 相机
      • 帆布
      • 颜色
      • ColorFilter
      • 嘉洛斯
      • ColorMatrixColorFilter
      • 的ColorSpace
      • ColorSpace.Connector
      • ColorSpace.Rgb
      • ColorSpace.Rgb.TransferParameters
      • ComposePathEffect
      • ComposeShader
      • CornerPathEffect
      • DashPathEffect
      • DiscretePathEffect
      • DrawFilter
      • EmbossMaskFilter
      • 图像格式
      • 插补
      • LightingColorFilter
      • 的LinearGradient
      • MaskFilter
      • 矩阵
      • 电影
      • NinePatch
      • 大纲
      • 涂料
      • Paint.FontMetrics
      • Paint.FontMetricsInt
      • PaintFlagsDrawFilter
      • 路径
      • PathDashPathEffect
      • PathEffect
      • Pthameasure
      • 图片
      • 像素格式
      • 的PointF
      • PORTERDUFF
      • PorterDuffColorFilter
      • PorterDuffXfermode
      • 的RadialGradient
      • 矩形
      • RectF
      • 地区
      • RegionIterator
      • 着色器
      • SumPathEffect
      • 表面纹理
      • SweepGradient
      • 字体
      • Typeface.Builder
      • Xfermode
      • YuvImage
    • 枚举

    • 例外

  • android.graphics.drawable
  • android.graphics.drawable.shapes
  • android.graphics.fonts
  • android.graphics.pdf
  • android.hardware
  • android.hardware.camera2
  • android.hardware.camera2.params
  • android.hardware.display
  • android.hardware.fingerprint
  • android.hardware.input
  • android.hardware.usb
  • android.icu.lang
  • android.icu.math
  • android.icu.text
  • android.icu.util
  • android.inputmethodservice
  • android.location
  • android.media
  • android.media.audiofx
  • android.media.browse
  • android.media.effect
  • android.media.midi
  • android.media.projection
  • android.media.session
  • android.media.tv
  • android.mtp
  • android.net
  • android.net.http
  • android.net.nsd
  • android.net.rtp
  • android.net.sip
  • android.net.wifi
  • android.net.wifi.aware
  • android.net.wifi.hotspot2
  • android.net.wifi.hotspot2.omadm
  • android.net.wifi.hotspot2.pps
  • android.net.wifi.p2p
  • android.net.wifi.p2p.nsd
  • android.nfc
  • android.nfc.cardemulation
  • android.nfc.tech
  • android.opengl
  • android.os
  • android.os.health
  • android.os.storage
  • android.preference
  • android.print
  • android.print.pdf
  • android.printservice
  • android.provider
  • android.renderscript
  • android.sax
  • android.security
  • android.security.keystore
  • android.service.autofill
  • android.service.carrier
  • android.service.chooser
  • android.service.dreams
  • android.service.media
  • android.service.notification
  • android.service.quicksettings
  • android.service.restrictions
  • android.service.textservice
  • android.service.voice
  • android.service.vr
  • android.service.wallpaper
  • android.speech
  • android.speech.tts
  • android.system
  • android.telecom
  • android.telephony
  • android.telephony.cdma
  • android.telephony.gsm
  • android.test
  • android.test.mock
  • android.test.suitebuilder
  • android.test.suitebuilder.annotation
  • android.text
  • android.text.format
  • android.text.method
  • android.text.style
  • android.text.util
  • android.transition
  • android.util
  • android.view
  • android.view.accessibility
  • android.view.animation
  • android.view.autofill
  • android.view.inputmethod
  • android.view.textclassifier
  • android.view.textservice
  • android.webkit
  • android.widget
  • com.android.internal.util
  • dalvik.annotation
  • dalvik.bytecode
  • dalvik.system
  • java.awt.font
  • java.beans
  • java.io
  • java.lang
  • java.lang.annotation
  • java.lang.invoke
  • java.lang.ref
  • java.lang.reflect
  • java.math
  • java.net
  • java.nio
  • java.nio.channels
  • java.nio.channels.spi
  • java.nio.charset
  • java.nio.charset.spi
  • java.nio.file
  • java.nio.file.attribute
  • java.nio.file.spi
  • java.security
  • java.security.acl
  • java.security.cert
  • java.security.interfaces
  • java.security.spec
  • java.sql
  • java.text
  • java.time
  • java.time.chrono
  • java.time.format
  • java.time.temporal
  • java.time.zone
  • java.util
  • java.util.concurrent
  • java.util.concurrent.atomic
  • java.util.concurrent.locks
  • java.util.function
  • java.util.jar
  • java.util.logging
  • java.util.prefs
  • java.util.regex
  • java.util.stream
  • java.util.zip
  • javax.crypto
  • javax.crypto.interfaces
  • javax.crypto.spec
  • javax.microedition.khronos.egl
  • javax.microedition.khronos.opengles
  • javax.net
  • javax.net.ssl
  • javax.security.auth
  • javax.security.auth.callback
  • javax.security.auth.login中
  • javax.security.auth.x500中
  • javax.security.cert中
  • javax.sql中
  • javax.xml
  • javax.xml.datatype中
  • 的javax.xml.namespace
  • javax.xml.parsers中
  • javax.xml.transform中
  • javax.xml.transform.dom中
  • javax.xml.transform.sax中
  • javax.xml.transform.stream
  • javax.xml.validation中
  • javax.xml.xpath的
  • junit.framework
  • junit.runner
  • org.apache.http.conn
  • org.apache.http.conn.scheme
  • org.apache.http.conn.ssl
  • org.apache.http.params
  • org.json
  • org.w3c.dom中
  • org.w3c.dom.ls
  • org.xml.sax中的
  • org.xml.sax.ext中
  • org.xml.sax.helpers中
  • org.xmlpull.v1
  • org.xmlpull.v1.sax2
  • 首页
  • 设计
  • 开发
    • 培训
    • API 指南
    • 参考
    • 样品
    • 图书馆
    • Android Studio
    • Android NDK
    • Google服务
    • 质量指南
    • 科特林
  • 分发
  • 故事
  • 预习
加入API 1级

帆布

public class Canvas 
extends Object 

java.lang.Object继承   ↳android.graphics.Canvas

Canvas类保存“draw”调用。要画一些东西,你需要4个基本组件:一个位图来保存像素,一个Canvas来主持绘图调用(写入位图),一个绘图原语(如Rect,Path,text,Bitmap)和一个绘图(描述绘图的颜色和样式)。

开发者指南

有关如何使用Canvas的更多信息,请阅读 Canvas和Drawables开发人员指南。

概要


嵌套类

enumCanvas.EdgeType

用作quickReject()调用参数的常数值。 

enumCanvas.VertexMode

 

常量

intALL_SAVE_FLAG

restore()被调用时恢复所有内容(标准保存标志)。

intCLIP_SAVE_FLAG

这个常量是在API级别26.使用过时的无支撑的版本save()saveLayer(RectF, Paint) saveLayerAlpha(RectF, int)对于saveLayer()调用,剪辑总是针对Hardware accelerated 画布进行还原,以及作为Build.VERSION_CODES.O所有画布类型的默认行为的API级别

intCLIP_TO_LAYER_SAVE_FLAG

该常数在API级别26中被废弃。该标志导致性能差,并且使用不同剪辑的单层或多个绘图命令可以实现相同的效果。

intFULL_COLOR_LAYER_SAVE_FLAG

此常数在API级别26中已被弃用。此标志被忽略。使用无旗版本saveLayer(RectF, Paint) saveLayerAlpha(RectF, int)

intHAS_ALPHA_LAYER_SAVE_FLAG

此常数在API级别26中已被弃用。此标志被忽略。使用无旗版本saveLayer(RectF, Paint) saveLayerAlpha(RectF, int)

intMATRIX_SAVE_FLAG

这个常量是在API级别26.使用过时的无支撑的版本save()saveLayer(RectF, Paint) saveLayerAlpha(RectF, int)对于saveLayer()调用,矩阵总是针对Hardware accelerated 画布进行还原,以及作为Build.VERSION_CODES.O所有画布类型的默认行为的API级别

字段

protected intmDensityprotected longmNativeCanvasWrapper

应该只在构造函数中分配(或者如果软件画布是setBitmap),则可以通过NativeAllocation释放。

protected intmScreenDensity

用于确定何时兼容性缩放有效。

公共建设者

Canvas()

构造一个空的光栅画布。

Canvas(Bitmap bitmap)

构造一个带有指定位图绘制的画布。

公共方法

booleanclipOutPath(Path path)

将剪辑设置为当前剪辑和指定路径的差异。

booleanclipOutRect(int left, int top, int right, int bottom)

将剪辑设置为当前剪辑和指定矩形的差异,以局部坐标表示。

booleanclipOutRect(Rect rect)

将剪辑设置为当前剪辑和指定矩形的差异,以局部坐标表示。

booleanclipOutRect(float left, float top, float right, float bottom)

将剪辑设置为当前剪辑和指定矩形的差异,以局部坐标表示。

booleanclipOutRect(RectF rect)

将剪辑设置为当前剪辑和指定矩形的差异,以局部坐标表示。

booleanclipPath(Path path, Region.Op op)

这种方法比其它API级26 Region.Op值弃用INTERSECT DIFFERENCE具有扩大夹的能力。画布剪切API旨在仅由于还原操作展开剪辑。这使得视图父对象可以剪辑画布,以便清楚地定义其子项的最大绘图区域。推荐的替代电话是clipPath(Path) clipOutPath(Path);

booleanclipPath(Path path)

用指定的路径相交当前的剪辑。

booleanclipRect(float left, float top, float right, float bottom, Region.Op op)

这种方法比其它API级26 Region.Op值弃用INTERSECT DIFFERENCE具有扩大夹的能力。画布剪切API旨在仅由于还原操作展开剪辑。这使得视图父对象可以剪辑画布,以便清楚地定义其子项的最大绘图区域。推荐的替代电话是clipRect(float, float, float, float) clipOutRect(float, float, float, float);

booleanclipRect(RectF rect)

用指定的矩形相交当前的剪辑,以局部坐标表示。

booleanclipRect(Rect rect)

用指定的矩形相交当前的剪辑,以局部坐标表示。

booleanclipRect(Rect rect, Region.Op op)

这种方法比其它API级26 Region.Op值弃用INTERSECT DIFFERENCE具有扩大夹的能力。画布剪切API旨在仅由于还原操作展开剪辑。这使得视图父对象可以剪辑画布,以便清楚地定义其子项的最大绘图区域。推荐的替代电话是clipRect(Rect)clipOutRect(Rect);

booleanclipRect(int left, int top, int right, int bottom)

用指定的矩形相交当前的剪辑,以局部坐标表示。

booleanclipRect(float left, float top, float right, float bottom)

用指定的矩形相交当前的剪辑,以局部坐标表示。

booleanclipRect(RectF rect, Region.Op op)

这种方法比其它API级26 Region.Op值弃用INTERSECT DIFFERENCE具有扩大夹的能力。画布剪切API旨在仅由于还原操作展开剪辑。这使得视图父对象可以剪辑画布,以便清楚地定义其子项的最大绘图区域。推荐的替代电话是clipRect(RectF)clipOutRect(RectF);

voidconcat(Matrix matrix)

用指定的矩阵预先计算当前矩阵。

voiddrawARGB(int a, int r, int g, int b)

使用srcover porterduff模式,使用指定的ARGB颜色填充整个画布的位图(仅限于当前的剪辑)。

voiddrawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter,Paint paint)

绘制指定的弧,其将被缩放以适合指定的椭圆。

voiddrawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)

绘制指定的弧,其将被缩放以适合指定的椭圆。

voiddrawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)

使用指定的矩阵绘制位图。

voiddrawBitmap(int[] colors, int offset, int stride, float x, float y, int width, int height, boolean hasAlpha, Paintpaint)

在API级别21中不建议使用hardware accelerated此方法。每次调用此方法时,画布的用法都需要内部的颜色缓冲区内容副本。使用位图可避免此复制,并允许应用程序更明确地控制像素数据的生命周期和副本。

voiddrawBitmap(int[] colors, int offset, int stride, int x, int y, int width, int height, boolean hasAlpha, Paintpaint)

在API级别21中不建议使用hardware accelerated此方法。每次调用此方法时,画布的用法都需要内部的颜色缓冲区内容副本。使用位图可避免此复制,并允许应用程序更明确地控制像素数据的生命周期和副本。

voiddrawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)

绘制指定的位图,自动缩放/翻译以填充目标矩形。

voiddrawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint)

绘制指定的位图,自动缩放/翻译以填充目标矩形。

voiddrawBitmap(Bitmap bitmap, float left, float top, Paint paint)

使用由当前矩阵转换的指定绘制,绘制指定的位图,其顶部/左侧角(x,y)。

voiddrawBitmapMesh(Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint)

通过网格绘制位图,网格顶点均匀分布在位图中。

voiddrawCircle(float cx, float cy, float radius, Paint paint)

使用指定的油漆绘制指定的圆。

voiddrawColor(int color)

使用srcover porterduff模式,使用指定的颜色填充整个画布的位图(仅限于当前的剪辑)。

voiddrawColor(int color, PorterDuff.Mode mode)

使用指定的颜色和porter-duff xfermode填充整个画布的位图(限于当前的剪辑)。

voiddrawLine(float startX, float startY, float stopX, float stopY, Paint paint)

使用指定的绘制绘制一个具有指定开始和停止x,y坐标的线段。

voiddrawLines(float[] pts, int offset, int count, Paint paint)

画一系列线。

voiddrawLines(float[] pts, Paint paint)voiddrawOval(float left, float top, float right, float bottom, Paint paint)

使用指定的油漆绘制指定的椭圆。

voiddrawOval(RectF oval, Paint paint)

使用指定的油漆绘制指定的椭圆。

voiddrawPaint(Paint paint)

使用指定的颜色填充整个画布的位图(仅限于当前的剪辑)。

voiddrawPatch(NinePatch patch, RectF dst, Paint paint)voiddrawPatch(NinePatch patch, Rect dst, Paint paint)voiddrawPath(Path path, Paint paint)

使用指定的颜色绘制指定的路径。

voiddrawPicture(Picture picture, RectF dst)

绘制图片,拉伸以适应第d个矩形。

voiddrawPicture(Picture picture)

保存画布状态,绘制图片,并恢复画布状态。

voiddrawPicture(Picture picture, Rect dst)

绘制图片,拉伸以适应第d个矩形。

voiddrawPoint(float x, float y, Paint paint)

drawPoints()用于绘制单个点。

voiddrawPoints(float[] pts, Paint paint)

drawPoints()的助手,假定您要绘制整个数组

voiddrawPoints(float[] pts, int offset, int count, Paint paint)

画一系列点。

voiddrawPosText(String text, float[] pos, Paint paint)

此方法在API级别16中已弃用。此方法不支持字形组合和分解,因此不应用于复制脚本。它也不处理补充字符(例如表情符号)。

voiddrawPosText(char[] text, int index, int count, float[] pos, Paint paint)

此方法在API级别16中已弃用。此方法不支持字形组合和分解,因此不应用于复制脚本。它也不处理补充字符(例如表情符号)。

voiddrawRGB(int r, int g, int b)

使用srcover porterduff模式,使用指定的RGB颜色填充整个画布的位图(仅限于当前的剪辑)。

voiddrawRect(float left, float top, float right, float bottom, Paint paint)

使用指定的绘图绘制指定的Rect。

voiddrawRect(Rect r, Paint paint)

使用指定的绘图绘制指定的Rect。

voiddrawRect(RectF rect, Paint paint)

使用指定的绘图绘制指定的Rect。

voiddrawRoundRect(RectF rect, float rx, float ry, Paint paint)

使用指定的油漆绘制指定的圆弧。

voiddrawRoundRect(float left, float top, float right, float bottom, float rx, float ry, Paint paint)

使用指定的油漆绘制指定的圆弧。

voiddrawText(CharSequence text, int start, int end, float x, float y, Paint paint)

绘制指定范围的文本,由起始/终止指定,其起始位于(x,y),在指定的“绘画”中。

voiddrawText(String text, float x, float y, Paint paint)

使用指定的油漆绘制文本,原点为(x,y)。

voiddrawText(char[] text, int index, int count, float x, float y, Paint paint)

使用指定的油漆绘制文本,原点为(x,y)。

voiddrawText(String text, int start, int end, float x, float y, Paint paint)

使用指定的油漆绘制文本,原点为(x,y)。

voiddrawTextOnPath(String text, Path path, float hOffset, float vOffset, Paint paint)

沿着指定的路径使用指定的油漆绘制原点(x,y)的文本。

voiddrawTextOnPath(char[] text, int index, int count, Path path, float hOffset, float vOffset, Paint paint)

沿着指定的路径使用指定的油漆绘制原点(x,y)的文本。

voiddrawTextRun(char[] text, int index, int count, int contextIndex, int contextCount, float x, float y, boolean isRtl, Paint paint)

在一个方向上绘制一行文本,具有复杂文本整形的可选上下文。

voiddrawTextRun(CharSequence text, int start, int end, int contextStart, int contextEnd, float x, float y, boolean isRtl, Paint paint)

在一个方向上绘制一行文本,具有复杂文本整形的可选上下文。

voiddrawVertices(Canvas.VertexMode mode, int vertexCount, float[] verts, int vertOffset, float[] texs, int texOffset, int[] colors, int colorOffset, short[] indices, int indexOffset, int indexCount, Paint paint)

绘制顶点数组,解释为三角形(基于模式)。

booleangetClipBounds(Rect bounds)

返回bounds参数中当前剪辑的边界(在局部坐标中),如果非空,则返回true。

final RectgetClipBounds()

检索当前剪辑的边界(在本地坐标中)。

intgetDensity()

返回画布的目标密度。

DrawFiltergetDrawFilter()intgetHeight()

返回当前绘图层的高度

voidgetMatrix(Matrix ctm)

这种方法在API级别16中已被弃用。 Hardware accelerated当传递给View或Drawable时,画布可能具有任何矩阵,因为它是在层次结构中定义的实现方式,因此可以创建这样的画布。在这种情况下,推荐在不考虑当前矩阵的情况下绘制内容,或者跟踪画布外的相关变换状态。

finalMatrixgetMatrix()

这种方法在API级别16中已被弃用。 Hardware accelerated当传递给View或Drawable时,画布可能具有任何矩阵,因为它是在层次结构中定义的实现方式,因此可以创建这样的画布。在这种情况下,推荐在不考虑当前矩阵的情况下绘制内容,或者跟踪画布外的相关变换状态。

intgetMaximumBitmapHeight()

返回使用此画布绘制的位图的最大允许高度。

intgetMaximumBitmapWidth()

返回使用此画布绘制的位图的最大允许宽度。

intgetSaveCount()

返回Canvas私有堆栈上矩阵/剪辑状态的数量。

intgetWidth()

返回当前绘图层的宽度

booleanisHardwareAccelerated()

指示此Canvas是否使用硬件加速。

booleanisOpaque()

如果当前层吸收的设备是不透明的(即,

booleanquickReject(float left, float top, float right, float bottom, Canvas.EdgeType type)

如果指定的矩形在被当前矩阵变换之后将完全位于当前剪辑之外,则返回true。

booleanquickReject(RectF rect, Canvas.EdgeType type)

如果指定的矩形在被当前矩阵变换之后将完全位于当前剪辑之外,则返回true。

booleanquickReject(Path path, Canvas.EdgeType type)

如果指定的路径被当前矩阵转换后将完全位于当前剪辑之外,则返回true。

voidrestore()

此调用平衡先前对save()的调用,并用于从上次保存调用后删除对矩阵/片段状态的所有修改。

voidrestoreToCount(int saveCount)

高效的方式弹出保存计数之后发生的save()的所有调用到达saveCount。

voidrotate(float degrees)

用指定的旋转预先计算当前矩阵。

final voidrotate(float degrees, float px, float py)

用指定的旋转预先计算当前矩阵。

intsave(int saveFlags)

这个方法在API级别26中被废弃了save()

intsave()

将当前矩阵和剪辑保存到专用堆栈上。

intsaveLayer(RectF bounds, Paint paint, int saveFlags)

这个方法在API级别26中被废弃了saveLayer(RectF, Paint)

intsaveLayer(RectF bounds, Paint paint)

这与save()的行为相同,但是它还将绘图分配并重定向到屏幕外渲染目标。

intsaveLayer(float left, float top, float right, float bottom, Paint paint)

方便的saveLayer(RectF, Paint)是采用边界矩形的四个浮点坐标。

intsaveLayer(float left, float top, float right, float bottom, Paint paint, int saveFlags)

这个方法在API级别26中被废弃了saveLayer(float, float, float, float, Paint)

intsaveLayerAlpha(float left, float top, float right, float bottom, int alpha, int saveFlags)

这个方法在API级别26中被废弃了saveLayerAlpha(float, float, float, float, int)

intsaveLayerAlpha(RectF bounds, int alpha)

方便saveLayer(RectF, Paint)而不是使用整个Paint对象,它只需要alpha参数。

intsaveLayerAlpha(RectF bounds, int alpha, int saveFlags)

这个方法在API级别26中被废弃了saveLayerAlpha(RectF, int)

intsaveLayerAlpha(float left, float top, float right, float bottom, int alpha)

方便的saveLayerAlpha(RectF, int)是采用边界矩形的四个浮点坐标。

final voidscale(float sx, float sy, float px, float py)

以指定的比例预先计算当前矩阵。

voidscale(float sx, float sy)

以指定的比例预先计算当前矩阵。

voidsetBitmap(Bitmap bitmap)

指定要绘制的画布的位图。

voidsetDensity(int density)

指定此Canvas的支持位图的密度。

voidsetDrawFilter(DrawFilter filter)voidsetMatrix(Matrix matrix)

用指定的矩阵完全替换当前矩阵。

voidskew(float sx, float sy)

以指定的偏移量预先计算当前矩阵。

voidtranslate(float dx, float dy)

用指定的转换预先计算当前矩阵

受保护的方法

static final voidcheckRange(int length, int offset, int count)voidthrowIfCannotDraw(Bitmap bitmap)

继承方法

 从课堂上 java.lang.Object

常量


ALL_SAVE_FLAG

加入API 1级
int ALL_SAVE_FLAG

restore()被调用时恢复所有内容(标准保存标志)。

注意:出于性能原因,强烈建议将这个完整的标志传递给任何调用saveLayer()saveLayerAlpha() 变体。

注意:接受此标志的所有方法都具有等同于传递此标志的无标记版本。

常数值:31(0x0000001f)

CLIP_SAVE_FLAG

加入API 1级
int CLIP_SAVE_FLAG

这个常量是在API级别26.不赞成
使用的无支撑的版本save()saveLayer(RectF, Paint) saveLayerAlpha(RectF, int)对于saveLayer()调用,剪辑总是针对Hardware accelerated 画布进行还原,以及作为Build.VERSION_CODES.O所有画布类型的默认行为的API级别

在restore()被调用时还原当前的剪辑。

常数值:2(0x00000002)

CLIP_TO_LAYER_SAVE_FLAG

加入API 1级
int CLIP_TO_LAYER_SAVE_FLAG

该常数在API级别26中被废弃。
该标志导致性能差,并且使用不同剪辑的单层或多个绘图命令可以实现相同的效果。

剪贴画到屏幕外层的边界,省略你自己的危险。

注意:强烈建议不要为任何调用saveLayer() saveLayerAlpha()变体省略此标志不通过这个标志通常会引发硬件加速渲染的性能极差。

常数值:16(0x00000010)

FULL_COLOR_LAYER_SAVE_FLAG

加入API 1级
int FULL_COLOR_LAYER_SAVE_FLAG

此常数在API级别26中已被弃用。
此标志被忽略。使用无旗版本saveLayer(RectF, Paint) saveLayerAlpha(RectF, int)

该层需要每个颜色通道的完全8位精度。

常数值:8(0x00000008)

HAS_ALPHA_LAYER_SAVE_FLAG

加入API 1级
int HAS_ALPHA_LAYER_SAVE_FLAG

此常数在API级别26中已被弃用。
此标志被忽略。使用无旗版本saveLayer(RectF, Paint) saveLayerAlpha(RectF, int)

该层需要每像素Alpha通道。

常数值:4(0x00000004)

MATRIX_SAVE_FLAG

加入API 1级
int MATRIX_SAVE_FLAG

这个常量是在API级别26.不赞成
使用的无支撑的版本save()saveLayer(RectF, Paint) saveLayerAlpha(RectF, int)对于saveLayer()调用,矩阵总是针对Hardware accelerated 画布进行还原,以及作为Build.VERSION_CODES.O所有画布类型的默认行为的API级别

在restore()被调用时还原当前矩阵。

常数值:1(0x00000001)

字段


mDensity

int mDensity

mNativeCanvasWrapper

长mNativeCanvasWrapper

应该只在构造函数中分配(或者如果软件画布是setBitmap),则可以通过NativeAllocation释放。

mScreenDensity

int mScreenDensity

用于确定何时兼容性缩放有效。

公共建设者


帆布

加入API 1级
画布()

构造一个空的光栅画布。使用setBitmap()指定要绘制的位图。最初的目标密度DENSITY_NONE; 当为画布设置目标位图时,通常会被替换。

帆布

加入API 1级
画布(图)

构造一个带有指定位图绘制的画布。位图必须是可变的。

画布的初始目标密度与给定位图的密度相同。

参数bitmapBitmap:指定要绘制的画布的可变位图。

这个值永远不会null

公共方法


clipOutPath

加入API级别26
boolean clipOutPath(路径路径)

将剪辑设置为当前剪辑和指定路径的差异。

参数pathPath:差异操作中使用的路径

这个值永远不会null

返回boolean如果生成的剪辑不为空,则为true

clipOutRect

加入API级别26
boolean clipOutRect(int left,                 int顶部,                 int对,                 int底部)

将剪辑设置为当前剪辑和指定矩形的差异,以局部坐标表示。

参数leftint:在差异操作中使用的矩形的左侧topint:在差异操作中使用的矩形的顶部rightint:在差异操作中使用的矩形右侧bottomint:在差异操作中使用矩形的底部返回boolean如果生成的剪辑不为空,则为true

clipOutRect

加入API级别26
boolean clipOutRect(Rect rect)

将剪辑设置为当前剪辑和指定矩形的差异,以局部坐标表示。

参数rectRect:用当前剪辑执行差异的矩形。

这个值永远不会null

返回boolean如果生成的剪辑不为空,则为true

clipOutRect

加入API级别26
boolean clipOutRect(float left,                 浮动顶部,                 浮动右                 浮底)

将剪辑设置为当前剪辑和指定矩形的差异,以局部坐标表示。

参数leftfloat:在差异操作中使用的矩形的左侧topfloat:在差异操作中使用的矩形的顶部rightfloat:在差异操作中使用的矩形右侧bottomfloat:在差异操作中使用矩形的底部返回boolean如果生成的剪辑不为空,则为true

clipOutRect

加入API级别26
boolean clipOutRect(RectF rect)

将剪辑设置为当前剪辑和指定矩形的差异,以局部坐标表示。

参数rectRectF:用当前剪辑执行差异的矩形。

这个值永远不会null

返回boolean如果生成的剪辑不为空,则为true

clipPath

加入API 1级
boolean clipPath(Path path,                  Region.Op op)

这种方法是在API级26弃用
比其他Region.Op值INTERSECT DIFFERENCE具有扩大夹的能力。画布剪切API旨在仅由于还原操作展开剪辑。这使得视图父对象可以剪辑画布,以便清楚地定义其子项的最大绘图区域。推荐的替代电话是clipPath(Path) clipOutPath(Path);

使用指定的路径修改当前的剪辑。

参数pathPath:在当前剪辑上操作的路径

这个值永远不会null

opRegion.Op:剪辑如何修改

这个值永远不会null

返回boolean如果结果为非空,则为true

clipPath

加入API 1级
布尔clipPath(路径路径)

用指定的路径相交当前的剪辑。

参数pathPath:与当前剪辑相交的路径

这个值永远不会null

返回boolean如果生成的剪辑不为空,则为true

clipRect

加入API 1级
boolean clipRect(float left,                 浮动顶部,                 浮动右                 浮底,                 区域开放

这种方法是在API级26弃用
比其他Region.Op值INTERSECT DIFFERENCE具有扩大夹的能力。画布剪切API旨在仅由于还原操作展开剪辑。这使得视图父对象可以剪辑画布,以便清楚地定义其子项的最大绘图区域。推荐的替代电话是clipRect(float, float, float, float) clipOutRect(float, float, float, float);

使用指定的矩形修改当前的剪辑,以本地坐标表示。

参数leftfloat:与当前剪辑相交的矩形左侧topfloat:与当前剪辑相交的矩形的顶部rightfloat:与当前剪辑相交的矩形右侧bottomfloat:与当前剪辑相交的矩形的底部opRegion.Op:剪辑如何修改

这个值永远不会null

返回boolean如果生成的剪辑不为空,则为true

clipRect

加入API 1级
boolean clipRect(RectF rect)

用指定的矩形相交当前的剪辑,以局部坐标表示。

参数rectRectF:与当前剪辑相交的矩形。

这个值永远不会null

返回boolean如果生成的剪辑不为空,则为true

clipRect

加入API 1级
boolean clipRect(Rect rect)

用指定的矩形相交当前的剪辑,以局部坐标表示。

参数rectRect:与当前剪辑相交的矩形。

这个值永远不会null

返回boolean如果生成的剪辑不为空,则为true

clipRect

加入API 1级
boolean clipRect(Rect rect,                  Region.Op op)

这种方法是在API级26弃用
比其他Region.Op值INTERSECT DIFFERENCE具有扩大夹的能力。画布剪切API旨在仅由于还原操作展开剪辑。这使得视图父对象可以剪辑画布,以便清楚地定义其子项的最大绘图区域。推荐的替代电话是clipRect(Rect)clipOutRect(Rect);

使用指定的矩形修改当前的剪辑,以本地坐标表示。

参数rectRect:与当前剪辑相交的矩形。

这个值永远不会null

opRegion.Op:剪辑如何修改

这个值永远不会null

返回boolean如果生成的剪辑不为空,则为true

clipRect

加入API 1级
boolean clipRect(int left,                 int顶部,                 int对,                 int底部)

用指定的矩形相交当前的剪辑,以局部坐标表示。

参数leftint:与当前剪辑相交的矩形左侧topint:与当前剪辑相交的矩形的顶部rightint:与当前剪辑相交的矩形右侧bottomint:与当前剪辑相交的矩形的底部返回boolean如果生成的剪辑不为空,则为true

clipRect

加入API 1级
boolean clipRect(float left,                 浮动顶部,                 浮动右                 浮底)

用指定的矩形相交当前的剪辑,以局部坐标表示。

参数leftfloat:与当前剪辑相交的矩形左侧topfloat:与当前剪辑相交的矩形的顶部rightfloat:与当前剪辑相交的矩形右侧bottomfloat:与当前剪辑相交的矩形的底部返回boolean如果生成的剪辑不为空,则为true

clipRect

加入API 1级
boolean clipRect(RectF rect,                  Region.Op op)

这种方法是在API级26弃用
比其他Region.Op值INTERSECT DIFFERENCE具有扩大夹的能力。画布剪切API旨在仅由于还原操作展开剪辑。这使得视图父对象可以剪辑画布,以便清楚地定义其子项的最大绘图区域。推荐的替代电话是clipRect(RectF)clipOutRect(RectF);

使用指定的矩形修改当前的剪辑。

参数rectRectF:与当前剪辑相交的rect

这个值永远不会null

opRegion.Op:剪辑如何修改

这个值永远不会null

返回boolean如果生成的剪辑不为空,则为true

CONCAT

加入API 1级
void concat(矩阵矩阵)

用指定的矩阵预先计算当前矩阵。如果指定的矩阵为空,则此方法不执行任何操作。

参数matrixMatrix:预先连接当前矩阵的矩阵

该值可能是null

drawARGB

加入API 1级
void drawARGB(int a,                 int r,                 int g,                 int b)

使用srcover porterduff模式,使用指定的ARGB颜色填充整个画布的位图(仅限于当前的剪辑)。

参数aint:绘制画布上颜色的alpha组件(0..255)rint:将颜色的红色成分(0..255)绘制到画布上gint:将绿色组件(0..255)的颜色绘制到画布上bint:蓝色组件(0..255)的颜色要画在画布上

drawArc

加入API 21级
void drawArc(float left,                 浮动顶部,                 浮动右                 浮底,                 float startAngle,                 浮动扫掠,                 布尔使用中心,                 油漆漆)

绘制指定的弧,其将被缩放以适合指定的椭圆。

如果起始角度为负或> = 360,起始角度被视为起始角度模数360。

如果扫掠角度> 360°,则椭圆形被完全绘制。请注意,这与SkPath :: arcTo略有不同,它将扫描角度视为360度。如果扫描角度为负,则扫描角度被视为360度扫描角度

弧线顺时针拉伸。0度的角度对应于0度(手表3点钟)的几何角度。

参数leftfloattopfloatrightfloatbottomfloatstartAnglefloat:弧开始的起始角度(以度为单位)sweepAnglefloat:顺时针测量扫描角度(以度为单位)useCenterboolean:如果为真,请将椭圆的中心包含在圆弧中,如果正在抚摸,则关闭它。这将画一个楔子paintPaint:用来画弧的油漆

这个值永远不会null

drawArc

加入API 1级
void drawArc(RectF oval,                float startAngle,                 浮动扫掠,                 布尔使用中心,                 油漆漆)

绘制指定的弧,其将被缩放以适合指定的椭圆。

如果起始角度为负或> = 360,起始角度被视为起始角度模数360。

如果扫掠角度> 360°,则椭圆形被完全绘制。请注意,这与SkPath :: arcTo略有不同,它将扫描角度视为360度。如果扫描角度为负,则扫描角度被视为360度扫描角度

弧线顺时针拉伸。0度的角度对应于0度(手表3点钟)的几何角度。

参数ovalRectF:用于定义圆弧形状和大小的椭圆形边界

这个值永远不会null

startAnglefloat:弧开始的起始角度(以度为单位)sweepAnglefloat:顺时针测量扫描角度(以度为单位)useCenterboolean:如果为真,请将椭圆的中心包含在圆弧中,如果正在抚摸,则关闭它。这将画一个楔子paintPaint:用来画弧的油漆

这个值永远不会null

drawBitmap

加入API 1级
void drawBitmap(Bitmap bitmap,                  Matrix matrix,                  Paint paint)

使用指定的矩阵绘制位图。

参数bitmapBitmap:绘制位图

这个值永远不会null

matrixMatrix:绘制时用于转换位图的矩阵

这个值永远不会null

paintPaint:可能为null。油漆用来绘制位图

drawBitmap

加入API 3级
void drawBitmap(int [] colors,                 int offset,                 大步走                 浮动x,                 浮动y,                 int width,                 int高度,                 布尔hasAlpha,                 油漆漆)

在API级别21中不建议
使用hardware accelerated此方法。每次调用此方法时,画布的用法都需要内部的颜色缓冲区内容副本。使用位图可避免此复制,并允许应用程序更明确地控制像素数据的生命周期和副本。

将指定的颜色数组视为位图,并绘制它。这样做与第一次从数组中创建位图,然后绘制它相同的结果,但是这种方法避免了明确地创建一个位图对象,如果颜色经常变化可以更有效。

参数colorsint:表示位图像素的颜色数组

这个值永远不会null

offsetint:偏移到第一个像素的数组的颜色strideint:行之间数组中的颜色数(必须> = width或<= -width)。xfloat:绘制位图的X坐标yfloat:绘制位图的Y坐标widthint:位图的宽度heightint:位图的高度hasAlphaboolean:如果颜色的alpha通道包含有效值,则为真。如果为false,则忽略Alpha字节(对于每个像素,假定为0xFF)。paintPaint:可能为null。油漆用来绘制位图

drawBitmap

加入API 1级
void drawBitmap(int [] colors,                 int offset,                 大步走                 int x,                 int和,                 int width,                 int高度,                 布尔hasAlpha,                 油漆漆)

在API级别21中不建议
使用hardware accelerated此方法。每次调用此方法时,画布的用法都需要内部的颜色缓冲区内容副本。使用位图可避免此复制,并允许应用程序更明确地控制像素数据的生命周期和副本。

drawBitmap(int [] colors,...)的旧版本,它为x,y采用ints

参数colorsint

这个值永远不会null

offsetintstrideintxintyintwidthintheightinthasAlphabooleanpaintPaint

该值可能是null

drawBitmap

加入API 1级
void drawBitmap(Bitmap bitmap,                  Rect src,                  Rect dst,                  Paint paint)

绘制指定的位图,自动缩放/翻译以填充目标矩形。如果源矩形不为空,则它指定要绘制的位图的子集。

注意:如果paint包含一个maskfilter,它生成一个扩展到位图原始宽度/高度之外的掩码(例如BlurMaskFilter),那么位图将被绘制为具有CLAMP模式的着色器。因此,原始宽度/高度之外的颜色将被复制的边缘颜色。

此函数忽略与位图关联的密度这是因为源和目标矩形坐标空间处于各自的密度,所以必须已经应用了适当的缩放因子。

参数bitmapBitmap:要绘制的位图

这个值永远不会null

srcRect:可能为null。要绘制的位图的子集dstRect:位图将被缩放/翻译以适应的矩形

这个值永远不会null

paintPaint:可能为null。油漆用来绘制位图

drawBitmap

加入API 1级
void drawBitmap(Bitmap bitmap,                  Rect src,                  RectF dst,                  Paint paint)

绘制指定的位图,自动缩放/翻译以填充目标矩形。如果源矩形不为空,则它指定要绘制的位图的子集。

注意:如果paint包含一个maskfilter,它生成一个扩展到位图原始宽度/高度之外的掩码(例如BlurMaskFilter),那么位图将被绘制为具有CLAMP模式的着色器。因此,原始宽度/高度之外的颜色将被复制的边缘颜色。

此函数忽略与位图关联的密度这是因为源和目标矩形坐标空间处于各自的密度,所以必须已经应用了适当的缩放因子。

参数bitmapBitmap:要绘制的位图

这个值永远不会null

srcRect:可能为null。要绘制的位图的子集dstRectF:位图将被缩放/翻译以适应的矩形

这个值永远不会null

paintPaint:可能为null。油漆用来绘制位图

drawBitmap

加入API 1级
void drawBitmap(Bitmap bitmap,                浮动左                 浮动顶部,                 油漆漆)

使用由当前矩阵转换的指定绘制,绘制指定的位图,其顶部/左侧角(x,y)。

注意:如果paint包含一个maskfilter,它生成一个扩展到位图原始宽度/高度之外的掩码(例如BlurMaskFilter),那么位图将被绘制为具有CLAMP模式的着色器。因此,原始宽度/高度之外的颜色将被复制的边缘颜色。

如果位图和画布具有不同的密度,则此功能将自动缩放位图,使其与画布的密度相同。

参数bitmapBitmap:要绘制的位图

这个值永远不会null

leftfloat:绘制位图左侧的位置topfloat:正在绘制位图的顶端的位置paintPaint:用于绘制位图的绘图(可能为null)

drawBitmapMesh

加入API 1级
void drawBitmapMesh(Bitmap bitmap,                int meshWidth,                 int meshHeight,                 float [] verts,                 int vertOffset,                 int []颜色,                 int colorOffset,                 油漆漆)

通过网格绘制位图,网格顶点均匀分布在位图中。横向有meshWidth + 1个顶点,并且meshHeight + 1个顶点向下。以row-major顺序访问verts数组,使第一个meshWidth + 1个顶点从左到右分布在位图的顶部。此方法的更一般版本是drawVertices()。

参数bitmapBitmap:使用网格绘制的位图

这个值永远不会null

meshWidthint:网格中的列数。如果这是0,没有任何东西meshHeightint:网格中的行数。如果这是0,没有任何东西vertsfloat:x,y对的数组,指定应绘制网格的位置。数组中必须至少有(meshWidth + 1)*(meshHeight + 1)* 2 + vertOffset值

这个值永远不会null

vertOffsetint:绘制之前要跳过的verts元素数colorsint:可能为null。指定每个顶点处的颜色,该颜色在单元格之间插值,并将其值乘以相应的位图颜色。如果不为空,则数组中必须至少有(meshWidth + 1)*(meshHeight + 1)+ colorOffset值。colorOffsetint:绘制前要跳过的颜色元素数paintPaint:可能为null。油漆用来绘制位图

画圆

加入API 1级
void drawCircle(float cx,                 浮球,                 浮动半径,                 油漆漆)

使用指定的油漆绘制指定的圆。如果radius <= 0,则不会绘制任何内容。根据油漆中的样式,圆圈将被填充或框架。

参数cxfloat:要绘制的圆环的中心的x坐标cyfloat:要绘制的圆环的中心的y坐标radiusfloat:要绘制的圆环的半径paintPaint画画用来画圆

这个值永远不会null

drawColor

加入API 1级
void drawColor(int color)

使用srcover porterduff模式,使用指定的颜色填充整个画布的位图(仅限于当前的剪辑)。

参数colorint:画在画布上的颜色

drawColor

加入API 1级
void drawColor(int color,                  PorterDuff.Mode mode)

使用指定的颜色和porter-duff xfermode填充整个画布的位图(限于当前的剪辑)。

参数colorint:画的颜色modePorterDuff.Mode:搬运工模式适用于颜色

这个值永远不会null

的drawLine

加入API 1级
void drawLine(float startX,                 浮动startY,                 浮动挡X,                 浮动stopY,                 油漆漆)

使用指定的绘制绘制一个具有指定开始和停止x,y坐标的线段。

请注意,由于线条总是“框架”,所以在画面中忽略样式。

退化线(长度为0)不会绘制。

参数startXfloat:行的起始点的x坐标startYfloat:线的起点的y坐标stopXfloatstopYfloatpaintPaint油漆用来画线

这个值永远不会null

画线

加入API 1级
void drawLines(float [] pts,                 int offset,                 int计数,                 油漆漆)

画一系列线。每行都取自pts数组中的4个连续值。因此,绘制1行时,数组必须至少包含4个值。这在逻辑上与绘制数组相同:drawLine(pts [0],pts [1],pts [2],pts [3]),后跟drawLine(pts [4],pts [5],pts [ 6],pts [7])等。

参数ptsfloat:绘制点阵数[x0 y0 x1 y1 x2 y2 ...]

这个值永远不会null

offsetint:绘制前要跳过的数组中的数值。countint:数组中要处理的值的数量,跳过“偏移量”之后。由于每行使用4个值,因此绘制的“行”数真的是(count >> 2)。paintPaint油漆用来画点

这个值永远不会null

画线

加入API 1级
void drawLines(float [] pts,                  Paint paint)
参数ptsfloat

这个值永远不会null

paintPaint

这个值永远不会null

drawOval

加入API 21级
void drawOval(float left,                 浮动顶部,                 浮动右                 浮底,                 油漆漆)

使用指定的油漆绘制指定的椭圆。椭圆形将根据油漆中的样式填充或框架。

参数leftfloattopfloatrightfloatbottomfloatpaintPaint

这个值永远不会null

drawOval

加入API 1级
无效drawOval(RectF椭圆形,                  油漆涂料)

使用指定的油漆绘制指定的椭圆。椭圆形将根据油漆中的样式填充或框架。

参数ovalRectF:要绘制的椭圆的矩形边界

这个值永远不会null

paintPaint

这个值永远不会null

drawPaint

加入API 1级
void drawPaint(油漆

使用指定的颜色填充整个画布的位图(仅限于当前的剪辑)。使用指定的绘制绘制无限大的矩形,这是相当的(但更快)。

参数paintPaint:用来画在画布上的油漆

这个值永远不会null

drawPatch

void drawPatch(NinePatch patch,                  RectF dst,                  Paint paint)
参数patchNinePatch

这个值永远不会null

dstRectF

这个值永远不会null

paintPaint

该值可能是null

drawPatch

void drawPatch(NinePatch patch,                  Rect dst,                  Paint paint)
参数patchNinePatch

这个值永远不会null

dstRect

这个值永远不会null

paintPaint

该值可能是null

drawPath

加入API 1级
void drawPath(Path path,                  Paint paint)

使用指定的颜色绘制指定的路径。该路径将根据油漆中的“样式”填充或框架。

参数pathPath要绘制的路径

这个值永远不会null

paintPaint:用来绘制路径的油漆

这个值永远不会null

drawPicture

加入API 1级
void drawPicture(Picture picture,                  RectF dst)

绘制图片,拉伸以适应第d个矩形。

参数picturePicture

这个值永远不会null

dstRectF

这个值永远不会null

drawPicture

加入API 1级
void drawPicture(Picture picture)

保存画布状态,绘制图片,并恢复画布状态。这与picture.draw(canvas)不同,后者不执行任何保存/恢复。

注意:这将强制图片内部呼叫 endRecording(),以准备播放。

参数picturePicture:要画的图片

这个值永远不会null

drawPicture

加入API 1级
void drawPicture(Picture picture,                  Rect dst)

绘制图片,拉伸以适应第d个矩形。

参数picturePicture

这个值永远不会null

dstRect

这个值永远不会null

drawPoint

加入API 1级
void drawPoint(float x,                 浮动y,                 油漆漆)

drawPoints()用于绘制单个点。

参数xfloatyfloatpaintPaint

这个值永远不会null

drawPoints

加入API 1级
void drawPoints(float [] pts,                  Paint paint)

drawPoints()的助手,假定您要绘制整个数组

参数ptsfloat

这个值永远不会null

paintPaint

这个值永远不会null

drawPoints

加入API 1级
void drawPoints(float [] pts,                 int offset,                 int计数,                 油漆漆)

画一系列点。每个点都位于由pts []指定的坐标上,其直径由油漆的笔画宽度(由画布“CTM”转换)指定,对于笔画宽度为0的特殊处理,它总是正好绘制1个像素或者如果启用抗锯齿,则最多为4)。点的形状由油漆的盖型控制。形状是一个正方形,除非帽子类型是圆形,在这种情况下,形状是圆形。

参数ptsfloat:绘制点阵数[x0 y0 x1 y1 x2 y2 ...]offsetint:开始绘制前要跳过的数值。countint:在跳过偏移量之后要处理的值的数量。由于一个点使用两个值,所绘制的“点”的数量真的是(count >> 1)。paintPaint油漆用来画点

这个值永远不会null

drawPosText

加入API 1级
void drawPosText(String text,                float [] pos,                 油漆漆)

此方法在API级别16中已弃用。
此方法不支持字形组合和分解,因此不应用于复制脚本。它也不处理补充字符(例如表情符号)。

绘制数组中的文本,每个字符的起始点由pos数组指定。

参数textString:要绘制的文字

这个值永远不会null

posfloat:用于定位每个字符的[x,y]位置的数组

这个值永远不会null

paintPaint:用于文本的颜色(如颜色,大小,样式)

这个值永远不会null

drawPosText

加入API 1级
void drawPosText(char [] text,                 int索引,                 int计数,                 float [] pos,                 油漆漆)

此方法在API级别16中已弃用。
此方法不支持字形组合和分解,因此不应用于复制脚本。它也不处理补充字符(例如表情符号)。

绘制数组中的文本,每个字符的起始点由pos数组指定。

参数textchar:要绘制的文字

这个值永远不会null

indexint:绘制第一个字符的索引countint:从索引开始绘制的字符数。posfloat:用于定位每个字符的[x,y]位置的数组

这个值永远不会null

paintPaint:用于文本的颜色(如颜色,大小,样式)

这个值永远不会null

drawRGB

加入API 1级
void drawRGB(int r,                 int g,                 int b)

使用srcover porterduff模式,使用指定的RGB颜色填充整个画布的位图(仅限于当前的剪辑)。

参数rint:将颜色的红色成分(0..255)绘制到画布上gint:将绿色组件(0..255)的颜色绘制到画布上bint:蓝色组件(0..255)的颜色要画在画布上

的drawRect

加入API 1级
void drawRect(float left,                 浮动顶部,                 浮动右                 浮底,                 油漆漆)

使用指定的绘图绘制指定的Rect。矩形将根据油漆中的样式填充或框架。

参数leftfloat:要绘制的矩形的左侧topfloat:要绘制的矩形的顶端rightfloat:要绘制的矩形的右侧bottomfloat:要绘制的矩形的底部paintPaint:用来画直角的油漆

这个值永远不会null

的drawRect

加入API 1级
void drawRect(Rect r,                  Paint paint)

使用指定的绘图绘制指定的Rect。矩形将根据油漆中的样式填充或框架。

参数rRect:要绘制的矩形。

这个值永远不会null

paintPaint:用来绘制矩形的油漆

这个值永远不会null

的drawRect

加入API 1级
void drawRect(RectF rect,                  Paint paint)

使用指定的绘图绘制指定的Rect。矩形将根据油漆中的样式填充或框架。

参数rectRectF:要画的矩形

这个值永远不会null

paintPaint:用来画直角的油漆

这个值永远不会null

drawRoundRect

加入API 1级
void drawRoundRect(RectF rect,                float rx,                 浮动ry,                 油漆漆)

使用指定的油漆绘制指定的圆弧。根据油漆中的风格,圆形将被填充或框架。

参数rectRectF:要绘制的roundRect的矩形边界

这个值永远不会null

rxfloat:用于圆角的椭圆的x半径ryfloat:用于圆角的椭圆的y半径paintPaint:用来绘制圆形的油漆

这个值永远不会null

drawRoundRect

加入API 21级
void drawRoundRect(float left,                 浮动顶部,                 浮动右                 浮底,                 float rx,                 浮动ry,                 油漆漆)

使用指定的油漆绘制指定的圆弧。根据油漆中的风格,圆形将被填充或框架。

参数leftfloattopfloatrightfloatbottomfloatrxfloat:用于圆角的椭圆的x半径ryfloat:用于圆角的椭圆的y半径paintPaint:用来绘制圆形的油漆

这个值永远不会null

的drawText

加入API 1级
void drawText(CharSequence text,                int开始,                 int结束,                 浮动x,                 浮动y,                 油漆漆)

绘制指定范围的文本,由起始/终止指定,其起始位于(x,y),在指定的“绘画”中。基于油漆中的对齐设置来解释原点。

参数textCharSequence:要绘制的文字

这个值永远不会null

startint:要绘制的文本中的第一个字符的索引endint:(end-1)是要绘制的文本中的最后一个字符的索引xfloat:用于绘制文本的原点的x坐标yfloat:用于绘制文本的原点的y坐标paintPaint:用于文本的颜色(如颜色,大小,样式)

这个值永远不会null

的drawText

加入API 1级
void drawText(String text,                浮动x,                 浮动y,                 油漆漆)

使用指定的油漆绘制文本,原点为(x,y)。根据油漆中的对齐设置对原点进行解释。

参数textString:要绘制的文字

这个值永远不会null

xfloat:正在绘制的文本的原点的x坐标yfloat:正在绘制的文本的基线的y坐标paintPaint:用于文本的颜色(如颜色,大小,样式)

这个值永远不会null

的drawText

加入API 1级
void drawText(char [] text,                 int索引,                 int计数,                 浮动x,                 浮动y,                 油漆漆)

使用指定的油漆绘制文本,原点为(x,y)。根据油漆中的对齐设置对原点进行解释。

参数textchar:要绘制的文字

这个值永远不会null

indexintcountintxfloat:正在绘制的文本的原点的x坐标yfloat:正在绘制的文本的基线的y坐标paintPaint:用于文本的颜色(如颜色,大小,样式)

这个值永远不会null

的drawText

加入API 1级
void drawText(String text,                int开始,                 int结束,                 浮动x,                 浮动y,                 油漆漆)

使用指定的油漆绘制文本,原点为(x,y)。根据油漆中的对齐设置对原点进行解释。

参数textString:要绘制的文字

这个值永远不会null

startint:要绘制的文本中的第一个字符的索引endint:(end-1)是要绘制的文本中的最后一个字符的索引xfloat:正在绘制的文本的原点的x坐标yfloat:正在绘制的文本的基线的y坐标paintPaint:用于文本的颜色(如颜色,大小,样式)

这个值永远不会null

drawTextOnPath

加入API 1级
void drawTextOnPath(String text,                  Path path,                float hOffset,                 float vOffset,                 油漆漆)

沿着指定的路径使用指定的油漆绘制原点(x,y)的文本。油漆的“对齐”设置确定了开始文本的路径。

参数textString:要绘制的文字

这个值永远不会null

pathPath:文本应该遵循的路径为其基线

这个值永远不会null

hOffsetfloat:沿路径的距离添加到文本的起始位置vOffsetfloat:( - )或以下的距离(+)定位文本的路径paintPaint:用于文本的颜色(如颜色,大小,样式)

这个值永远不会null

drawTextOnPath

加入API 1级
void drawTextOnPath(char [] text,                 int索引,                 int计数,                 路径路径,                float hOffset,                 float vOffset,                 油漆漆)

沿着指定的路径使用指定的油漆绘制原点(x,y)的文本。油漆的“对齐”设置确定了开始文本的路径。

参数textchar:要绘制的文字

这个值永远不会null

indexintcountintpathPath:文本应该遵循的路径为其基线

这个值永远不会null

hOffsetfloat:沿路径的距离添加到文本的起始位置vOffsetfloat:( - )或以下的距离(+)定位文本的路径paintPaint:用于文本的颜色(如颜色,大小,样式)

这个值永远不会null

drawTextRun

加入API级别23
void drawTextRun(char [] text,                 int索引,                 int计数,                 int contextIndex,                 int contextCount,                 浮动x,                 浮动y,                 boolean isRtl,                 油漆漆)

在一个方向上绘制一行文本,具有复杂文本整形的可选上下文。

查看drawTextRun(CharSequence, int, int, int, int, float, float, boolean, Paint)更多详情。此方法使用字符数组而不是CharSequence来表示字符串。而且,与drawText(char[], int, int, float, float, Paint)在该方法中建立的模式一致,count并且contextCount被使用而不是结束位置的偏移; count = end - start, contextCount = contextEnd - contextStart

参数textchar:要呈现的文字

这个值永远不会null

indexint:文本的开始渲染countint:要渲染的字符数contextIndexint:形成的上下文的开始。必须不大于索引。contextCountint:用于整形的上下文中的字符数。contexIndex + contextCount必须不小于index + count。xfloat:绘制文本的x位置yfloat:绘制文本的y位置isRtlboolean:运行是否在RTL方向paintPaint:油漆

这个值永远不会null

drawTextRun

加入API级别23
void drawTextRun(CharSequence text,                int开始,                 int结束,                 int contextStart,                 int contextEnd,                 浮动x,                 浮动y,                 boolean isRtl,                 油漆漆)

在一个方向上绘制一行文本,具有复杂文本整形的可选上下文。

文本的运行包括从字符startend文本。此外,该范围contextStartcontextEnd被用作上下文,用于复杂文本整形的目的,如潜在不同的形状根据其旁边的文本阿拉伯语的文本。

超出范围的所有文本都将contextStart..contextEnd被忽略。之间的文本 start,并end会进行布局和绘制。

运行的方向由明确指定isRtl因此,该方法仅适用于单个方向的运行。文本的对齐方式由Paint的TextAlign值确定。此外,0 <= contextStart <= start <= end <= contextEnd <= text.length必须坚持进入。

另请参见getRunAdvance(char[], int, int, int, int, boolean, int)相应的方法来测量文本; 绘制文本的前进宽度与从该方法获得的值相匹配。

参数textCharSequence:要呈现的文字

这个值永远不会null

startint:文本的开始渲染。此位置之前的数据可用于形成上下文。endint:要渲染的文本的结尾。此位置之前或之后的数据可用于形成上下文。contextStartint:形成上下文开始的索引contextEndint:整形上下文结束的索引xfloat:绘制文本的x位置yfloat:绘制文本的y位置isRtlboolean:运行是否在RTL方向paintPaint:油漆

这个值永远不会null

也可以看看:

  • drawTextRun(char[], int, int, int, int, float, float, boolean, Paint)

drawVertices

加入API 1级
void drawVertices(Canvas.VertexMode mode,                int vertexCount,                 float [] verts,                 int vertOffset,                 float [] texs,                 int texOffset,                 int []颜色,                 int colorOffset,                 短[]指数,                 int indexOffset,                 int indexCount,                 油漆漆)

绘制顶点数组,解释为三角形(基于模式)。verts数组是必需的,并指定每个顶点的x,y对。如果tex是非空的,那么它用于指定在每个顶点使用的着色器坐标中的坐标(在这种情况下,油漆必须有着色器)。如果没有texs数组,但是有一个颜色数组,那么每个颜色都会在其对应的三角形中以渐变方式插值。如果tex和颜色数组都存在,那么它们的行为就像以前一样,但是每个像素的结果颜色是将着色器和颜色渐变颜色相乘的结果。indices数组是可选的,但如果存在,则用于指定每个三角形的索引,而不是按顺序遍历数组。

参数modeCanvas.VertexMode:如何解释顶点数组

这个值永远不会null

vertexCountint:顶点数组中的值的数量(如果为非空,则为相应的texs和颜色数组)。每个逻辑顶点是两个值(x,y),vertexCount必须是2的倍数。vertsfloat:网格的顶点数组

这个值永远不会null

vertOffsetint:绘制之前要跳过的窗口中的值的数量。texsfloat:可能为null。如果不为空,则指定要采样到当前着色器中的坐标(例如位图图块或渐变)texOffsetint:绘制之前要跳过的tex中的值的数量。colorsint:可能为null。如果不为空,则为每个顶点指定要在三角形内插的颜色。colorOffsetint:绘制前要跳过的颜色值的数量。indicesshort:如果不为null,则要引用到顶点的数组(texs,colors)数组。indexOffsetintindexCountint:索引数组中的条目数(如果不为空)。paintPaint:指定要使用的着色器,如果texs数组不为空。

getClipBounds

加入API 1级
boolean getClipBounds(Rect bounds)

返回bounds参数中当前剪辑的边界(在局部坐标中),如果非空,则返回true。这可以以类似于quickReject的方式有用,因为它告诉您,在这些边界之外的绘图将被剪切出来。

参数boundsRect:在这里返回剪辑边界。如果它为空,则忽略它,但如果当前剪辑不为空,则仍返回true。返回boolean如果当前剪辑不为空,则为true。

getClipBounds

加入API 1级
Rect getClipBounds()

检索当前剪辑的边界(在本地坐标中)。

返回Rect剪辑限制,或者如果剪辑为空,则为[0,0,0,0]。

这个值永远不会null

getDensity

加入API 4级
int getDensity()

返回画布的目标密度。默认密度来自其支持位图的密度,或者DENSITY_NONE如果没有密度 

返回int返回画布的当前目标密度,用于在绘制位图时确定缩放因子。

也可以看看:

  • setDensity(int)
  • getDensity()

getDrawFilter

加入API 1级
DrawFilter getDrawFilter()
返回DrawFilter

该值可能是null

的getHeight

加入API 1级
int getHeight()

返回当前绘图层的高度

返回int当前绘图层的高度

getMatrix

加入API 1级
void getMatrix(Matrix ctm)

这种方法在API级别16中已被弃用。
Hardware accelerated当传递给View或Drawable时,画布可能具有任何矩阵,因为它是在层次结构中定义的实现方式,因此可以创建这样的画布。在这种情况下,推荐在不考虑当前矩阵的情况下绘制内容,或者跟踪画布外的相关变换状态。

返回ctm中的当前变换矩阵。这不会改变画布中的矩阵,而只是返回它的一个副本。

参数ctmMatrix

这个值永远不会null

getMatrix

加入API 1级
Matrix getMatrix()

这种方法在API级别16中已被弃用。
Hardware accelerated当传递给View或Drawable时,画布可能具有任何矩阵,因为它是在层次结构中定义的实现方式,因此可以创建这样的画布。在这种情况下,推荐在不考虑当前矩阵的情况下绘制内容,或者跟踪画布外的相关变换状态。

返回一个新的矩阵与一个画布的当前变换矩阵的副本。

返回Matrix

这个值永远不会null

getMaximumBitmapHeight

加入API 14级
int getMaximumBitmapHeight()

返回使用此画布绘制的位图的最大允许高度。尝试使用比此值高的位图绘制将导致错误。

返回int 

也可以看看:

  • getMaximumBitmapWidth()

getMaximumBitmapWidth

加入API 14级
int getMaximumBitmapWidth()

返回使用此画布绘制的位图的最大允许宽度。尝试使用比此值更宽的位图绘制会导致错误。

返回int 

也可以看看:

  • getMaximumBitmapHeight()

getSaveCount

加入API 1级
int getSaveCount()

返回Canvas私有堆栈上矩阵/剪辑状态的数量。这将等于#save()调用 - #restore()调用。

返回int 

的getWidth

加入API 1级
int getWidth()

返回当前绘图层的宽度

返回int当前绘图层的宽度

isHardwareAccelerated

加入API 11级
boolean isHardwareAccelerated()

指示此Canvas是否使用硬件加速。请注意,此方法没有定义什么类型的硬件加速可能或可能不使用。

返回boolean如果绘图操作是硬件加速,则为真,否则为false。

isOpaque

加入API 1级
boolean isOpaque()

如果当前图层绘制的设备是不透明的(即不支持每像素alpha),则返回true。

返回boolean如果当前图层所绘制的设备是不透明的,则为true

quickReject

加入API 1级
boolean quickReject(float left,                 浮动顶部,                 浮动右                 浮底,                 Canvas.EdgeType类型)

如果指定的矩形在被当前矩阵变换之后将完全位于当前剪辑之外,则返回true。调用它来检查您打算绘制的区域是否被剪裁(因此您可以跳过绘制调用)。

参数leftfloat:与当前剪辑进行比较的矩形左侧topfloat:与当前剪辑进行比较的矩形顶部rightfloat:与当前剪辑进行比较的矩形右侧bottomfloat:与当前剪辑进行比较的矩形底部typeCanvas.EdgeTypeAA如果路径应该被视为抗锯齿,因为这意味着它可能会影响比非抗锯齿(BW更大的面积(更多的像素)。

这个值永远不会null

返回boolean如果rect(由画布矩阵转换)与画布的剪辑不相交,则为true

quickReject

加入API 1级
boolean quickReject(RectF rect,                  Canvas.EdgeType type)

如果指定的矩形在被当前矩阵变换之后将完全位于当前剪辑之外,则返回true。调用它来检查您打算绘制的区域是否被剪裁(因此您可以跳过绘制调用)。

参数rectRectF:与当前剪辑进行比较的rect

这个值永远不会null

typeCanvas.EdgeTypeAA如果路径应该被视为抗锯齿,因为这意味着它可能会影响比非抗锯齿(BW更大的面积(更多的像素)。

这个值永远不会null

返回boolean如果rect(由画布矩阵转换)与画布的剪辑不相交,则为true

quickReject

加入API 1级
boolean quickReject(路径路径,                  Canvas.EdgeType类型)

如果指定的路径被当前矩阵转换后将完全位于当前剪辑之外,则返回true。调用它来检查您打算绘制的区域是否被剪裁(因此您可以跳过绘制调用)。注意:对于速度,即使路径本身可能不与剪辑相交(即,路径的边界相交,但路径不相交),它可能会返回false。

参数pathPath:与当前剪辑进行比较的路径

这个值永远不会null

typeCanvas.EdgeTypeAA如果路径应该被视为抗锯齿,因为这意味着它可能会影响比非抗锯齿(BW更大的面积(更多的像素)。

这个值永远不会null

返回boolean如果路径(由画布矩阵转换)与画布的剪辑不相交,则为true

恢复

加入API 1级
void restore()

此调用平衡先前对save()的调用,并用于从上次保存调用后删除对矩阵/片段状态的所有修改。调用restore()比save()被调用多一次是一个错误。

restoreToCount

加入API 1级
void restoreToCount(int saveCount)

高效的方式弹出保存计数之后发生的save()的所有调用到达saveCount。这是saveCount小于1的错误。示例:int count = canvas.save(); ... //更多的调用潜在地保存()canvas.restoreToCount(count); //现在画布回到处于初始//调用save()之前的状态。

参数saveCountint:恢复到的保存级别。

回转

加入API 1级
void rotate(float degrees)

用指定的旋转预先计算当前矩阵。

参数degreesfloat:旋转量,以度为单位

回转

加入API 1级
void rotate(float degrees,                 浮点px,                 浮动py)

用指定的旋转预先计算当前矩阵。

参数degreesfloat:旋转量,以度为单位pxfloat:枢轴点的x坐标(旋转不变)pyfloat:枢轴点的y坐标(旋转不变)

保存

加入API 1级
int save(int saveFlags)

这种方法在API级别被废弃26
使用save()来代替。

基于saveFlags,可以将当前矩阵和剪辑保存到专用堆栈上。

注意:如果可能,请使用无参数的save()。它比使用此方法单独禁用矩阵或剪辑的方式更简单和更快。

随后的转换,缩放,旋转,偏移,concat或clipRect,clipPath都将像往常一样运行,但是当进行对restore()的平衡调用时,这些调用将被遗忘,并且save()之前存在的设置将被恢复。

参数saveFlagsint:指定要保存/还原的Canvas状态的哪些部分的标志位返回int传递给restoreToCount()的值来平衡此save()

保存

加入API 1级
int save()

将当前矩阵和剪辑保存到专用堆栈上。

随后的转换,缩放,旋转,偏移,concat或clipRect,clipPath都将像往常一样运行,但是当进行对restore()的平衡调用时,这些调用将被遗忘,并且save()之前存在的设置将被恢复。

返回int传递给restoreToCount()的值来平衡此save()

保存层

加入API 1级
int saveLayer(RectF bounds,                  Paint paint,                int saveFlags)

这种方法在API级别被废弃26
使用saveLayer(RectF, Paint)来代替。

这与save()的行为相同,但是它另外分配并将绘图重定向到屏幕外的位图。

注意:这种方法非常昂贵,导致包含内容的渲染成本超过两倍。避免使用此方法,特别是如果提供的边界较大,或者CLIP_TO_LAYER_SAVE_FLAGsaveFlags参数中省略 建议 hardware layer在视图上使用一个xfermode,彩色滤镜或alpha,因为它的性能要好于这种方法。

所有绘图调用均定向到新分配的屏幕外位图。只有当对restore()进行平衡调用时,屏幕上的缓冲区才被绘制回Canvas的当前目标(屏幕,目标位图或上一层)。

油漆的属性- alpha Xfermode ColorFilter被当屏幕外的位图被拉回恢复时采用()被调用。

参数boundsRectF:可能为null。屏幕位图需要的最大尺寸(局部坐标)paintPaint:这是被复制的,并且在调用restore()时被应用到屏幕上。

该值可能是null

saveFlagsint:见_SAVE_FLAG常数,一般ALL_SAVE_FLAG建议出于性能原因。返回int值传递给restoreToCount()以平衡此save()

保存层

加入API 21级
int saveLayer(RectF bounds,                  Paint paint)

这与save()的行为相同,但是它还将绘图分配并重定向到屏幕外渲染目标。

注意:这种方法非常昂贵,导致包含内容的渲染成本超过两倍。避免在可能的情况下使用此方法,而是使用 hardware layerView在应用xfermode,颜色滤镜或alpha,因为它会比这种方法好得多。

所有绘图调用均定向到新分配的屏幕外渲染目标。只有当对restore()进行平衡调用时,是否将屏幕外缓冲区绘制回Canvas的当前目标(如果这些调用是嵌套的,那么它们可能是上一层)。

油漆的属性- alpha Xfermode以及 ColorFilter当屏幕外渲染目标被拉回时恢复应用()被调用。

参数boundsRectF:可能为null。屏幕外渲染目标所需的最大大小(局部坐标)paintPaint:这是被复制的,并且在调用restore()时被应用到屏幕上。

该值可能是null

返回int值传递给restoreToCount()以平衡此save()

保存层

加入API 21级
int saveLayer(float left,                 浮动顶部,                 浮动右                 浮底,                 油漆漆)

方便的saveLayer(RectF, Paint)是采用边界矩形的四个浮点坐标。

参数leftfloattopfloatrightfloatbottomfloatpaintPaint

该值可能是null

返回int 

保存层

加入API 1级
int saveLayer(float left,                 浮动顶部,                 浮动右                 浮底,                 油漆                int saveFlags)

这种方法在API级别被废弃26
使用saveLayer(float, float, float, float, Paint)来代替。

保存版本的saveLayer()取4个值而不是一个RectF。

参数leftfloattopfloatrightfloatbottomfloatpaintPaint

该值可能是null

saveFlagsint返回int 

保存阿尔法层

加入API 1级
int saveLayerAlpha(float left,                 浮动顶部,                 浮动右                 浮底,                 int alpha,                 int saveFlags)

这种方法在API级别被废弃26
使用saveLayerAlpha(float, float, float, float, int)来代替。

对于SaveLayerAlpha()的Helper,它取4个值而不是一个RectF。

参数leftfloattopfloatrightfloatbottomfloatalphaintsaveFlagsint返回int 

保存阿尔法层

加入API 21级
int saveLayerAlpha(RectF bounds,                int alpha)

方便saveLayer(RectF, Paint)而不是使用整个Paint对象,它只需要alpha参数。

参数boundsRectF:屏幕位图需要的最大大小(局部坐标)

该值可能是null

alphaint:在恢复期间绘制时应用于屏幕的阿尔法()返回int 

保存阿尔法层

加入API 1级
int saveLayerAlpha(RectF bounds,                int alpha,                 int saveFlags)

这种方法在API级别被废弃26
使用saveLayerAlpha(RectF, int)来代替。

这与save()的行为相同,但是它另外分配并将绘图重定向到屏幕外的位图。

注意:这种方法非常昂贵,导致包含内容的渲染成本超过两倍。避免使用此方法,特别是如果提供的边界较大,或者CLIP_TO_LAYER_SAVE_FLAGsaveFlags参数中省略 建议 hardware layer在视图上使用一个xfermode,彩色滤镜或alpha,因为它的性能要好于这种方法。

所有绘图调用均定向到新分配的屏幕外位图。只有当对restore()进行平衡调用时,屏幕上的缓冲区才被绘制回Canvas的当前目标(屏幕,目标位图或上一层)。

alpha当调用restore()时屏幕位图被绘制时, 参数被应用。

参数boundsRectF:屏幕位图需要的最大大小(局部坐标)

该值可能是null

alphaint:在恢复期间绘制时应用于屏幕的阿尔法()saveFlagsint:见_SAVE_FLAG常数,一般ALL_SAVE_FLAG建议出于性能原因。返回int值传递给restoreToCount()以平衡此调用

保存阿尔法层

加入API 21级
int saveLayerAlpha(float left,                 浮动顶部,                 浮动右                 浮底,                 int alpha)

方便的saveLayerAlpha(RectF, int)是采用边界矩形的四个浮点坐标。

参数leftfloattopfloatrightfloatbottomfloatalphaint返回int 

规模

加入API 1级
void scale(float sx,                 浮动和,                 浮点px,                 浮动py)

以指定的比例预先计算当前矩阵。

参数sxfloat:X中的量化量syfloat:Y量表pxfloat:枢轴点的x坐标(按比例不变)pyfloat:枢轴点的y坐标(按比例不变)

规模

加入API 1级
void scale(float sx,                 浮动和)

以指定的比例预先计算当前矩阵。

参数sxfloat:X中的量化量syfloat:Y量表

setBitmap

加入API 1级
void setBitmap(Bitmap bitmap)

指定要绘制的画布的位图。所有画布状态(如图层,过滤器和保存/恢复堆栈)都将重置。此外,画布的目标密度更新为与位图的目标密度相匹配。在API级别之前,Build.VERSION_CODES.O保留当前矩阵和剪辑堆栈。

参数bitmapBitmap:指定要绘制的画布的可变位图。

该值可能是null

也可以看看:

  • setDensity(int)
  • getDensity()

setDensity

加入API 4级
void setDensity(int density)

指定此Canvas的支持位图的密度。这样可以修改画布本身的目标密度,还可以修改其背景位图的密度Bitmap.setDensity(int)

参数densityint:画布的新目标密度,用于在绘制位图时确定缩放因子。使用 DENSITY_NONE禁用位图缩放。

也可以看看:

  • getDensity()
  • setDensity(int)

setDrawFilter

加入API 1级
void setDrawFilter(DrawFilter filter)
参数filterDrawFilter

该值可能是null

setMatrix

加入API 1级
void setMatrix(矩阵矩阵)

用指定的矩阵完全替换当前矩阵。如果矩阵参数为空,则将当前矩阵重置为标识。 注:建议使用concat(Matrix) scale(float, float)translate(float, float) rotate(float)采用这个方法。

参数matrixMatrix:用矩阵替换当前矩阵。如果为空,则将当前矩阵设置为标识。

也可以看看:

  • concat(Matrix)

歪斜

加入API 1级
void skew(float sx,                 浮动和)

以指定的偏移量预先计算当前矩阵。

参数sxfloat:X的偏移量syfloat:在Y中倾斜的量

翻译

加入API 1级
void translate(float dx,                 浮雕)

用指定的转换预先计算当前矩阵

参数dxfloat:在X中翻译的距离dyfloat:在Y中翻译的距离

受保护的方法


checkRange

void checkRange(int length,                 int offset,                 int count)
参数lengthintoffsetintcountint

throwIfCannotDraw

void throwIfCannotDraw(Bitmap bitmap)
参数bitmapBitmap
本网站使用cookies来存储您的网站特定语言和显示选项的偏好。
进行简短的调查?
帮助我们改善Android开发人员的体验。 
(2017年9月调查)