创建位图的一部分作为新的位图

时间:2014-09-17 19:04:00

标签: android canvas bitmap draw

我有一个问题,我不知道如何解决它。我想要做的是创建一个位图,它是另一个位图的一部分。

我已经尝试了这个

Bitmap newBitmap = Bitmap.createBitmap(bitmap, (int)x, (int) y, (int)width, (int)height);

新位图的宽度/高度没问题,但它是空的,每个像素都是透明的。

所以我搜索并发现我必须使用canvas再次绘制部件,因为createBitmap的返回是空的一次。但是我不确定,因为这里的调用会返回一个不可变的Bitmap,而Canvas并不喜欢。我也不知道我必须使用哪个构造函数。

有人可以帮助我吗?

谢谢和问候

1 个答案:

答案 0 :(得分:0)

那个会创建一个INMUTABLE位图。请参阅http://developer.android.com/reference/android/graphics/Bitmap.html并阅读该方法。

要创建可变的,请使用createBitmap(DisplayMetrics display, int width, int height, Bitmap.Config config)。传递你要呈现的部分的宽度和高度以及从yourActivity.getResources().getDisplayMetrics()获得的displayMetrics。

要在新创建的位图中渲染所需的区域,请使用“画布”。有很多方法。你可以使用这个:http://developer.android.com/reference/android/graphics/Canvas.html#drawBitmap(android.graphics.Bitmap,android.graphics.Rect,android.graphics.RectF,android.graphics.Paint)

传入包含源区域和目标区域的矩形。