我有大位图(720x6000),我需要从中制作6个小位图(每个720x1000)。我怎么能这样做?请在答案中添加一些代码。
请原谅我的英语。
答案 0 :(得分:1)
使用静态方法Bitmap.createBitmap (Bitmap source, int x, int y, int width, int height)
的最简单的解决方案是从'source'位图的指定子集创建一个新的不可变位图(不可修改的不可变位图。试图修改一个将引发异常)。如果较小的位图必须是可变的,则可以通过调用Bitmap.createBitmap()
将Bitmap.copy(Bitmap.Config config, boolean isMutable)
返回的不可变位图转换为可变位图。
Bitmap bigBitmap = ...;
Bitmap smallBitmap1 = Bitmap.createBitmap(bigBitmap, 0, 0, 720, 1000);
Bitmap smallBitmap2 = Bitmap.createBitmap(bigBitmap, 0, 1000, 720, 1000);
Bitmap smallBitmap3 = Bitmap.createBitmap(bigBitmap, 0, 2000, 720, 1000);
...
// to make small bitmaps mutable
smallBitmap1 = smallBitmap1.copy(Bitmap.Config.ARGB_8888, true);
smallBitmap2 = smallBitmap2.copy(Bitmap.Config.ARGB_8888, true);
...
另一个解决方案是创建空的小位图,并使用Canvas
在较小的位图上绘制大位图的一部分。