我有9张图片的View-pager。我正在使用位图在视图中设置图像。当我第一次从画廊中选择九个图像时,它完美地显示了所有九个图像。此外,当我从图库中选择另外九个图像时,保持第一个或第二个视图相同,查看页面显示更新图像。但我的问题是当我试图用第一和第二改变所有九个图像。它们显示OutOfMemoryEror
之类的错误。所以我的问题是。如何在view-pager中更新第一个和第二个(下一个)视图。任何人都可以帮助我。比x提前。
活动代码
if(ab != null){
arr = ab.split(",");
for(int i = 0; i <arr.length; i++){
// Toast.makeText(getApplicationContext(), "done: "+ arr[i], Toast.LENGTH_LONG).show();
imgFile = new File(arr[i]);
if(imgFile.exists()){
myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
System.out.println("This my - bit : "+myBitmap+"ara - lenth : "+arr.length);
bitmapArray.add(myBitmap);
System.out.println("This bit-aray : "+bitmapArray.size()+" : "+bitmapArray.size() + "ara pos : "+arr[i]);
//Toast.makeText(getApplicationContext(), "This is bitmap array : "+ bitmapArray, Toast.LENGTH_LONG).show();
}
}
}else{
}
适配器代码
if(l == 1){
// layout.removeView(imageView);
// container.removeView(layout);
if(bitmapArray != null){
for(int j = 0; j < bitmapArray.size(); j++){
if(j == position){
j = position;
imageView.setImageBitmap(bitmapArray.get(j));
}
}
} //Toast.makeText(getApplicationContext(), ""+bitmapArray.get(j)+"size "+bitmapArray.size(), Toast.LENGTH_SHORT).show();
else{
imageView.setImageResource(res[position]);
bitarray.clear();
bitmapArray.clear();
sharedpreferences.edit().remove("imgpath").commit();
}
}
if(l == 2){
//layout.removeView(imageView);
//container.removeView(layout);
if(bitmapArray != null){
for(int j = 0; j < bitmapArray.size(); j++){
if(j == position){
j = position;
imageView.setImageBitmap(bitmapArray.get(j));
}
}
} //Toast.makeText(getApplicationContext(), ""+bitmapArray.get(j)+"size "+bitmapArray.size(), Toast.LENGTH_SHORT).show();
else{
imageView.setImageResource(res[position]);
bitarray.clear();
bitmapArray.clear();
sharedpreferences.edit().remove("imgpath").commit();
}
}