我有一个大位图 (720x6000),我需要用它制作 6 个小位图(每个 720x1000)。我怎样才能做到这一点?请在您的答案中添加一些代码。
请原谅我的英语不好。
最佳答案
最简单的解决方案是使用静态方法 Bitmap.createBitmap (Bitmap source, int x, int y, int width, int height)
女巫从“源”位图的指定子集创建一个新的不可变位图(不可变位图无法修改。尝试修改将引发异常)。如果较小的位图必须是可变的,您可以转换 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
在较小的位图上绘制大位图的部分。 .
关于java - Android - 如何从一张大位图创建小位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20724819/