美文网首页
六、Bitmap长图加载

六、Bitmap长图加载

作者: Serenity那年 | 来源:发表于2018-10-28 21:27 被阅读1次

    长图加载需要使用一个系统新的api:

    BitmapRegionDecoder

    image.png

    具体使用代码:

     /**
         * bitmap 长图加载
         *
         * 这里会使用一个新的api:BitmapRegionDecoder
         */
        private void loadLongBitmap() {
    
            InputStream is = null;
            try {
                is = getAssets().open("big.png");
                //第二个参数,代表这个输入流是否共享
                //false:不共享,BitmapRegionDecoder单独拷贝一份供自己使用,下面is.close()也不影响
                BitmapRegionDecoder bitmapRegionDecoder = BitmapRegionDecoder.newInstance(is, false);
                Rect rect = new Rect(0,0,100,100);
                //第一个参数rect 代表加载这个长的bitmap的区域,超出这个rect的其他部分不加载
                //这个 rect就是用来限制加载长图的区域
                Bitmap bitmap = bitmapRegionDecoder.decodeRegion(rect, null);
                // TODO: 2018/10/17  得到的这个bitmap可用于展示
                
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                if (null != is) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    

    相关文章

      网友评论

          本文标题:六、Bitmap长图加载

          本文链接:https://www.haomeiwen.com/subject/ahnhzftx.html