Koh*_*yer 23 graphics android bitmap android-canvas
每次我使用这个代码都没有画出来.我需要在指定的矩形内绘制一个位图.
canvas.drawBitmap(MyBitmap, null, rectangle, null)
Run Code Online (Sandbox Code Playgroud)
我看过网上但找不到多少帮助.
tri*_*ggs 35
编辑
原来的答案是不正确的.您可以使用sourceRect指定要绘制的位图的一部分.它可以为null,在这种情况下将使用整个图像.
根据油炸锅的评论,他正在画一些东西,我会在上面添加一个注释.
drawBitmap(bitmap, srcRect, destRect, paint)
不处理Z ordering (depth)
和对象的调用顺序.
如果要绘制3个形状,正方形,三角形和圆形.如果你想让方块在顶部,那么它必须最后绘制.
你没有指定任何来源,所以没有任何来源.
例:
你有一个100x100像素的位图.您想绘制整个位图.
canvas.drawBitmap(MyBitmap, new Rect(0,0,100,100), rectangle, null);
Run Code Online (Sandbox Code Playgroud)
您只想绘制位图的左半部分.
canvas.drawBitmap(MyBitmap, new Rect(0,0,50,100), rectangle, null);
Run Code Online (Sandbox Code Playgroud)
你需要指定源矩形,源矩形可以是一个矩形,从0,0到宽度,位图的高度.
Dev*_*ght 23
定义Rect时要记住的主要项目是:
矩形在屏幕坐标中(正Y向下)...
我发现想到Rect参数很有帮助
(left, top, right, bottom)
Run Code Online (Sandbox Code Playgroud)
如
(X, Y, X + Width, Y + Height)
Run Code Online (Sandbox Code Playgroud)
其中X,Y是精灵图像的左上角.
注意:如果想要将图像置于特定位置的中心,请记住将这些值偏移精灵宽度和高度的一半.例如:
int halfWidth = Width/2;
int halfHeight = Height/2
Rect dstRectForRender = new Rect( X - halfWidth, Y - halfHeight, X + halfWidth, Y + halfHeight );
canvas.drawBitmap ( someBitmap, null, dstRectForRender, null );
Run Code Online (Sandbox Code Playgroud)
这使用整个原始图像(因为src rect为null)并将其缩放以适合dstRectForRender的大小和位置......并使用默认的Paint.