我有一个问题,我不知道如何解决它。我想要做的是创建一个位图,它是另一个位图的一部分。
我已经尝试了这个
Bitmap newBitmap = Bitmap.createBitmap(bitmap, (int)x, (int) y, (int)width, (int)height);
新位图的宽度/高度没问题,但它是空的,每个像素都是透明的。
所以我搜索并发现我必须使用canvas再次绘制部件,因为createBitmap的返回是空的一次。但是我不确定,因为这里的调用会返回一个不可变的Bitmap,而Canvas并不喜欢。我也不知道我必须使用哪个构造函数。
有人可以帮助我吗?
谢谢和问候
答案 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)
传入包含源区域和目标区域的矩形。