91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

解決一個因Bitmap引起的OOM問題

發布時間:2020-06-14 10:18:04 來源:網絡 閱讀:1179 作者:chainli 欄目:開發技術

BitmapFactory.decodeStream引起了OutOfMemory. 在decodeStream之前,通過設置options.inJustDecodeBounds = true;讓Bitmap實現虛加載。

設置options.inJustDecodeBounds = true;讓Bitmap實現虛加載。 使用options.outWidth和options.outHeight獲取圖片寬和高。 再使用ImageLoader.getInstance().displayImage加載圖片。

public class PhotoViewFragment extends Fragment {

    private PhotoView mGestureImageView;
    private Bitmap mBitmap;

    @Override
    public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) {
        View inflateView = inflater.inflate(R.layout.fragment_photo_view_show, container, false);
        mGestureImageView = (PhotoView) inflateView.findViewById(R.id.p_w_picpath_turn_show_gestureImageView);
        getBundleData();
        try {
            /*減少內存占用*/
            BitmapFactory.Options opt = new BitmapFactory.Options();
            opt.inPreferredConfig = Bitmap.Config.RGB_565;
            opt.inPurgeable = true;
            opt.inInputShareable = true;
            opt.inJustDecodeBounds = true;//虛加載

            FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory() + File.separator + "abc.png");
            mBitmap = BitmapFactory.decodeStream(fis, null, opt);

            int width = opt.outWidth;
            int height = opt.outHeight;

            if (height / width >= 1.6) {//判斷橫豎圖
                mGestureImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            } else {
                mGestureImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            }

            DisplayImageOptions op = new DisplayImageOptions.Builder()
                    .cacheInMemory(true) // default
                    .build();
            Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory() + File.separator + "abc.png"));
            ImageLoader.getInstance().displayImage(uri.toString(), mGestureImageView, op);
        } catch (Exception e) {
            Log.e("Fragment", "onCreateView p_w_picpath-view", e);
        }
        return inflateView;
    }

    /**
     * 重置GestureImageView為原大小
     */
    public void resetGestureImageView() {
        mGestureImageView.reset();
    }

    /**
     * 獲得Bundle
     */
    private void getBundleData() {
        Bundle bundle = getArguments();
    }

    @Override
    public void onPause() {
        super.onPause();
        mGestureImageView.reset();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (mBitmap != null && !mBitmap.isRecycled()) {
            mBitmap.recycle();
            mBitmap = null;
        }
    }


}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

弥勒县| 杂多县| 许昌县| 措勤县| 玉田县| 察雅县| 利辛县| 大石桥市| 武安市| 武汉市| 图片| 威远县| 元氏县| 上蔡县| 宣武区| 韶山市| 赤水市| 子洲县| 伽师县| 临朐县| 崇义县| 鄄城县| 武穴市| 宁明县| 方城县| 孝感市| 永泰县| 北安市| 葵青区| 施甸县| 广州市| 左权县| 丁青县| 图们市| 扎兰屯市| 温宿县| 沾化县| 阿城市| 石阡县| 永康市| 城口县|