在图像按钮上显示图库中的图片



我有7个小图像按钮。我希望当您单击一张图片时,您可以从图库中选择一张图片并将其显示在按钮上。问题在于相机中的4.5 Mb等大图片,我添加的每张图片都需要50 Mb ram,在第3张图片上,它会因内存不足而崩溃。 当我删除按钮上的setImage时,我只保存我的照片以供以后使用。

private void setPicture(ImageButton button, Intent data){
    Uri imageUrl = data.getData();
    InputStream inputStream = null;
    ByteArrayOutputStream stream = null;
    try {
        inputStream = getContentResolver().openInputStream(imageUrl);
        Bitmap image = BitmapFactory.decodeStream(inputStream);
        Drawable drawable = new BitmapDrawable(getResources(), image);
        stream = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        pictures.add(stream.toByteArray());
        //button.setImageDrawable(drawable);

应避免将完整的大位图保留在内存中,只是为了在按钮上显示它的一小部分样本 - 而是加载缩减采样的版本。

您应该查看此官方Android指南:

高效加载大型位图

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

相关内容

  • 没有找到相关文章

最新更新