Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-如何从一个大位图创建小位图?_Java_Android_Bitmap - Fatal编程技术网

Java Android-如何从一个大位图创建小位图?

Java Android-如何从一个大位图创建小位图?,java,android,bitmap,Java,Android,Bitmap,我有大位图(720x6000),我需要用它制作6个小位图(每个720x1000)。我怎么能做到?请在答案中添加一些代码 请原谅我的英语。最简单的解决方案是使用静态方法Bitmap.createBitmap(位图源,int x,int y,int width,int height)witch创建一个新的不可变位图(不可变位图无法修改。尝试修改一个位图将引发异常)来自“源”位图的指定子集。如果较小的位图必须是可变的,则可以通过调用bitmap.copy(bitmap.Config,boolean i

我有大位图(720x6000),我需要用它制作6个小位图(每个720x1000)。我怎么能做到?请在答案中添加一些代码


请原谅我的英语。

最简单的解决方案是使用静态方法
Bitmap.createBitmap(位图源,int x,int y,int width,int height)
witch创建一个新的不可变位图(不可变位图无法修改。尝试修改一个位图将引发异常)来自“源”位图的指定子集。如果较小的位图必须是可变的,则可以通过调用
bitmap.copy(bitmap.Config,boolean isMutable)
bitmap.createBitmap()
返回的不可变位图转换为可变位图


另一种解决方案是创建空的小位图,并使用
画布

在较小的位图上绘制大位图的一部分。您最好缩放该位图,否则内存会很快用完。
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);
...