2010-09-17 149 views

回答

1

我相信你正在寻找Canvas的对象。当您在画面上绘制时(线条,形状,位图等),不必在屏幕上。

你会首先想要create a Bitmap来借鉴。

+0

帆布画在屏幕上的图像......无论如何,我怎么能从画布上得到图像。如果你知道,请告诉我这一点,因为我已经阅读了画布API,但似乎没有任何关于从画布获取图像的方法。 – sajjoo 2010-09-17 07:18:16

+0

画布可以用来在屏幕上画画,但他们不需要。创建一个位图,将其提供给画布,然后画出。由于您创建了位图,因此您可以引用位图,因此不需要让画布返回图像。 – colithium 2010-09-17 07:38:22

+0

我完全停留在这里画布太慢,无法移动地图。现在我正在考虑从屏幕上绘制我的瓷砖,并从中获取图像,并将其交给imageView以查看我的地图。但找不到任何能够在屏幕外绘制图像的东西。 – sajjoo 2010-09-17 07:55:12

0

退房的FingerPaint应用ApiDemos/Graphics

+0

不是我需要将我的图像画到屏幕外的解决方案,然后将图像作为单个图像并在屏幕上移动。 – sajjoo 2010-09-17 07:25:44

0

II是可以通过创建一个画布上绘制关闭屏幕,将其分配给一个可变的位图,并做所有用帆布方法绘制,就像这样:

Canvas c = new Canvas(); 
Bitmap bmp = BitmapFactory.decodeResource(this, R.drawable.mybasebmp); // this is NOT MUTABLE!! 
Bitmap bmpm = bmp.copy(bmp.getConfig(), true); // create a MUTABLE copy to draw on it 
Bitmap bmpt = BitmapFactory.decodeResource(this, R.drawable.mytilebmp); // this is my tile 
c.setBitmap(bmp); 
Rect r = Rect(100,100,149, 149); // scaled to 50x50 pix to draw at position 100,100 in mybasebmp 
c.drawBitmap(bmpt, null, r, null); // put a tile at 100,100 
r.set(150,170, 150+50-1, 170+50-1); 
c.drawBitmap(bmpt, null,r, null); // put a tile at 150,170 

// assign my drawn bitmap to an imageview to show it 
ImageView iv = (ImageView) findViewById(R.id.myimageview); 
iv.setImageBitmap(bmpm); 

我们使用画布来完成可变BMP中的所有绘图,然后我们将该BMP放入可见容器中,如imageview。

希望它可以帮助别人,我找不到任何合适的教程来做到这一点。