假设我有一个100 x 100的矩形,我有一个1000 x 1000的画布。
只要矩形的x坐标不超过999且不小于-100,就可以说在画布上可以看到矩形的某一部分。矩形的y坐标也是如此。
我想知道的是,如果矩形的x或y坐标被设置为使矩形在画布上不可见,canvas api的内部工作是否仍然绘制矩形,或者它是否自动优化并意识到将在画布上绘制的位图将不可见,因此它不会尝试绘制它。
我正在尝试弄清楚如何在android中的位图上绘制,并为撤消功能保留这些更改的位图的副本。
Bitmap b = ...
Paint p = new Paint();
canvas.drawBitmap(b, new Matrix(), null);
canvas.drawCircle(0,0,20,20);
//does Bitmap b have the circle drawn on it next time?
或者,在用画布绘制位图之后,如何获得位图(我想保留一堆由画布绘制应用的更改的位图)?也许我这样做是完全错误的。
我试图添加一个简单的2d图像(.png格式)到我的2d游戏。我的游戏包括一个游戏视图类,它扩展了表面视图,一个GameState类,它控制游戏的逻辑,并绘制画布和一个主要活动。我的GameState类有以下方法:
// the draw method
public void draw(Canvas canvas, Paint paint) {
// Clear the screen
canvas.drawRGB(20, 20, 20);
// set the colour
paint.setARGB(200, 0, 200, 0);
// // d
我正在编写一个android应用程序,它在视图的onDraw事件上直接绘制到画布。
我正在绘制涉及单独绘制每个像素的内容,为此,我使用如下内容:
for (int x = 0; x < xMax; x++) {
for (int y = 0; y < yMax; y++){
MyColour = CalculateMyPoint(x, y);
canvas.drawPoint(x, y, MyColour);
}
}
这里的问题是,这需要很长时间来绘制,因为CalculateMyPoint例程是一个相当昂贵的方法。
是否有更有效的方法绘制到画布,例如,我是否
我已经将我所有的图像从文件夹mipmap移到了可绘制的位置,因为这里说mipmap文件夹仅供应用程序图标在应用程序中使用(答案是841个赞)。但是,当我现在要启动我的应用程序时,我会收到一条错误消息。
FATAL EXCEPTION: main
Process: com.example.td.barapp, PID: 4331
java.lang.RuntimeException: Canvas: trying to draw too large(188394348bytes) bitmap.
at android.view.DisplayListCanvas