我有一个这样的方法,它只是将图像分成几个块
public void splitImage(Bitmap bmp, int chunks, int imageCode) {
int chunkHeight, chunkWidth;
int rows, cols;
rows = cols = 5;
//To store all the small image chunks in bitmap format in this list
ArrayList<Bitmap> greyImageChunks = new ArrayList<Bitmap>(chunks);
ArrayList<Bitmap> greenImageChunks = new ArrayList<Bitmap>(chunks);
ArrayList<Bitmap> redImageChunks = new ArrayList<Bitmap>(chunks);
//Getting the scaled bitmap of the source image
//BitmapDrawable drawable = (BitmapDrawable) image.getDrawable();
//Bitmap bitmap = drawable.getBitmap();
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bmp, bmp.getWidth(), bmp.getHeight(), true);
rows = cols = (int) Math.sqrt(chunks);
chunkHeight = bmp.getHeight()/rows;
chunkWidth = bmp.getWidth()/cols;
//xCoord and yCoord are the pixel positions of the image chunks
int yCoord = 0;
for(int x=0; x<rows; x++){
int xCoord = 0;
for(int y=0; y<cols; y++){
if(imageCode == 1) {
greyImageChunks.add(Bitmap.createBitmap(scaledBitmap, xCoord, yCoord, chunkWidth, chunkHeight));
} else if(imageCode == 2) {
greenImageChunks.add(Bitmap.createBitmap(scaledBitmap, xCoord, yCoord, chunkWidth, chunkHeight));
} else if(imageCode == 3) {
redImageChunks.add(Bitmap.createBitmap(scaledBitmap, xCoord, yCoord, chunkWidth, chunkHeight));
}
xCoord += chunkWidth;
}
yCoord += chunkHeight;
}
}
在这里,我想使用另一个方法mergeImages()从greyImageChunks,greenImageChunks和redImageChunks中检索块。
这些是本地创建的,因此外界无法访问。
在此方法之外,是否有任何方法可以访问这些数组列表。
从一个本地ArrayList到另一全局ArrayList的任何复制方法都可以吗?
请帮我。
注意:ArrayList的大小应该是动态的,因为ArrayList的大小是使用splitImage()方法中的int块定义的
最佳答案
如果我正确理解,请创建一个全局ArrayList
说mArrayList
。
ArrayList<Bitmap> mArrayList= new ArrayList<Bitmap>();
现在在您的方法内部,在for循环之后,将所有三个本地ArrayList添加到Global ArrayList。
for(int x=0; x<rows; x++){
int xCoord = 0;
for(int y=0; y<cols; y++){
if(imageCode == 1) {
greyImageChunks.add(Bitmap.createBitmap(scaledBitmap, xCoord, yCoord, chunkWidth, chunkHeight));
} else if(imageCode == 2) {
greenImageChunks.add(Bitmap.createBitmap(scaledBitmap, xCoord, yCoord, chunkWidth, chunkHeight));
} else if(imageCode == 3) {
redImageChunks.add(Bitmap.createBitmap(scaledBitmap, xCoord, yCoord, chunkWidth, chunkHeight));
}
xCoord += chunkWidth;
}
yCoord += chunkHeight;
}
mArrayList.addAll(greyImageChunks);
mArrayList.addAll(greenImageChunks);
mArrayList.addAll(redImageChunks);
关于android - 从本地Arraylist复制到android中的全局ArrayList,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38519336/