美文网首页
Android加载大图

Android加载大图

作者: jacky123 | 来源:发表于2016-06-12 17:47 被阅读147次

    1.利用BitmapFactory.OptionsinJustDecodeBounds属性来读取图片尺寸.
    参考:Bitmaps加载之高效加载大图
    这样做加载一个大图肯定会失真,如果不想失真,应该怎么做呢?


    2.首先不压缩,按照原图尺寸加载,那么屏幕肯定是不够大的,并且考虑到内存的情况,不可能一次性整图加载到内存中,所以肯定是局部加载,那么就需要用到一个类:BitmapRegionDecoder
    参考 [Android 高清加载巨图方案 拒绝压缩图片]

    mImageView = (ImageView) findViewById(R.id.id_imageview);
    try
    {
        InputStream inputStream = getAssets().open("tangyan.jpg");
    
        //获得图片的宽、高
        BitmapFactory.Options tmpOptions = new BitmapFactory.Options();
        tmpOptions.inJustDecodeBounds = true;
        BitmapFactory.decodeStream(inputStream, null, tmpOptions);
        int width = tmpOptions.outWidth;
        int height = tmpOptions.outHeight;
    
        //设置显示图片的中心区域
        BitmapRegionDecoder bitmapRegionDecoder = BitmapRegionDecoder.newInstance(inputStream, false);
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inPreferredConfig = Bitmap.Config.RGB_565;
        Bitmap bitmap = bitmapRegionDecoder.decodeRegion(new Rect(width / 2 - 100, height / 2 - 100, width / 2 + 100, height / 2 + 100), options);
        mImageView.setImageBitmap(bitmap);
    
    
    } catch (IOException e)
    {
        e.printStackTrace();
    }
    

    相关文章

      网友评论

          本文标题:Android加载大图

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