我正在尝试在带有可绘制对象的自定义对话框中将图像设置为图像视图。我有以下方法
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
this.setCancelable(false);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
ViewGroup vg = (ViewGroup)inflater.inflate(R.layout.popup, null);
image= (ImageView) vg.findViewById(R.id.image);
Uri uri = Uri.parse("android.resource://"+this.getActivity().getPackageName()+"/drawable/p1");
image.setImageURI(uri);
.
.
return builder.create();
}
它大部分时间运行良好,但会导致 xxxx 字节分配内存不足。
我知道是因为这个
image.setImageURI(uri);
摆脱这个问题的最佳方法是什么?
更新::
I tried to recycle the bitmap by using this
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
if(!bitmap.isRecycled()){
bitmap.recycle();
bitmap =null;
}
现在,如果我连续获得具有相同图像的拨号,则会出现此错误:
Canvas trying to use a recycled bitmap Runtime Exception.
任何帮助表示赞赏