以下是我用来在画布上显示图像一部分的代码示例:
Bitmap map = BitmapFactory.decodeResource(getResources(), R.drawable.thecat);
//the cat is 600x600 single image that looks like a 3x3 table made of 200x200 images
Bitmap smallShaft = Bitmap.createBitmap(map, 200, 200, 200, 200);
//notice createBitmap(source, startX, startY, width, height)
Canvas c = holder.lockCanvas();
c.drawARGB(255, 124, 124, 255);
c.drawBitmap(smallShaft, 0,0, null);
holder.unlockCanvasAndPost(c);
我得到的是一个200x200的正方形,包含超大的图像。尽管我从600x600图像中剪下了200x200的部分,但它显示出我从(600 * 1.5)x(600 * 1.5)图像中剪切了200x200的部分。
我得到了什么
我正在切割
你应该知道的另一个细节。 它是在自定义SurfaceView上绘制的,它实现了Runnable,并且图像正在无限循环中重绘。