zoukankan      html  css  js  c++  java
  • Android 显示大图片

    主要的代码如下:

         BitmapFactory.Options options = new BitmapFactory.Options();
            //图片解析配置
            options.inJustDecodeBounds = true;
            //获取图片的属性并赋予options
            BitmapFactory.decodeResource(getResources(), R.drawable.f1, options);
            //获得图片实际宽高
            int imgWidth = options.outWidth;
            int imgHeight = options.outHeight;
            System.out.println("outWidth = " + imgWidth);
            System.out.println("outHeight = " + imgHeight);
            //获取屏幕大小
            WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
            int windowwidth = windowManager.getDefaultDisplay().getWidth();
            int windowheight = windowManager.getDefaultDisplay().getHeight();
            System.out.println("width = " + windowwidth);
            System.out.println("height = " + windowheight);
            //计算缩放
            int scale = 1;
            int scaleX = imgWidth/windowwidth;
            int scaleY = imgHeight/windowheight;
    
            if(scaleX>1 && scaleX>scaleY) {
                scale = scaleX;
            }
            if(scaleY>1 && scaleY>scaleX) {
                scale = scaleY;
            }
            System.out.println("scale = " + scale);
            //真的解析图片
            options.inJustDecodeBounds = false;
            options.inSampleSize = scale;
            Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.f1, options);
            imageView.setImageBitmap(bitmap);

     附(计算inSampleSize的工具方法):

       public static int calculateInSampleSize(BitmapFactory.Options options,
                                                 int reqWidth, int reqHeight) {
            final int height = options.outHeight;
            final int width = options.outWidth;
            int inSampleSize = 1;
            if (height > reqHeight || width > reqWidth) {
                final int heightRatio = Math.round((float) height
                        / (float) reqHeight);
                final int widthRatio = Math.round((float) width / (float) reqWidth);
                inSampleSize = heightRatio < widthRatio ? widthRatio : heightRatio;
            }
            return inSampleSize;
        }
  • 相关阅读:
    js01
    js---18miniJquery
    js---17继承中方法属性的重写
    js---16继承
    js---16原型链
    js---15深拷贝浅拷贝 原型链
    js---14公有私有成员方法
    js---13 this call apply
    js---12对象创建方式,构造器,原型
    ESXi导出的CentOS7 ovf文件导入到workstation 无法打开GUI登录界面的问题解决方案
  • 原文地址:https://www.cnblogs.com/wuyou/p/3662377.html
Copyright © 2011-2022 走看看