在学习Android开发的过程中,我坚持使用图形技术。我的目标非常简单:
我已经看过SDK示例,尤其是Lunar Lander,但有些事情我完全无法理解。我有一个鸟类观点计划(在我脑海中看起来相当合理):
如何将图块合并为一个大图像? 背景是静态的,所以我想我应该这样做:
问题在于动手。我用“Bitmap img1 = BitmapFactory.decodeResource(res,R.drawable.img1)”加载小图像,但那么呢?我应该制作一个画布并使用“canvas.drawBitmap(img1,x,y,null);”绘制图像吗?如果是这样,如何从中获取Drawable / Bitmap?
我完全迷失在这里,非常感谢一些帮助(我当然会感谢一般的提示,但我主要是想了解Graphics对象)。为了让你,亲爱的读者,看到我的困惑程度,我将加入我最后的绝望尝试:
Drawable drawable;
Canvas canvas = new Canvas ();
Bitmap img1 = BitmapFactory.decodeResource (res, R.drawable.img1); // 50 x 100 px image
Bitmap img2 = BitmapFactory.decodeResource (res, R.drawable.img2); // 50 x 100 px image
canvas.drawBitmap (img1, 0, 0, null);
canvas.drawBitmap (img2, 50, 0, null);
drawable.draw (canvas); // obviously wrong as draw == null
this.setBackground (drawable);
提前致谢
答案 0 :(得分:0)
我终于明白了,我需要将一堆Bitmaps拼接在一起的基本问题是BitmapDrawable:
Bitmap myImage = Bitmap.createBitmap(450, 300, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(myImage);
Bitmap img1 = BitmapFactory.decodeResource (res, R.drawable.img1); // 50 x 100 px image
Bitmap img2 = BitmapFactory.decodeResource (res, R.drawable.img2); // 50 x 100 px image
canvas.drawBitmap (img1, 0, 0, null);
canvas.drawBitmap (img2, 50, 0, null);
this.setBackgroundDrawable(new BitmapDrawable(myImage));
我显然已经将它与Canvas和Bitmap之间的关系向后推,我认为Canvas是一个空白的画面,可以在上面画画。显然(如果我这次做对了)它连接到一个Bitmap,如果有那个就可以使用它。
我仍然不知道如何在onDraw(Canvas)函数中获取它,但这解决了我遇到的问题。