图片压缩

来源:互联网 发布:数据结构kmp算法next 编辑:程序博客网 时间:2024/04/29 02:56

iv=(ImageView)findViewById(R.id.imageView1);

              BitmapFactory.Optionsopts=new BitmapFactory.Options();

              //用于获取宽高,不用用Bitmap接收

              BitmapFactory.decodeResource(getResources(),R.drawable.aa, opts);

              opts.inJustDecodeBounds=true;//只获取宽、高

              //获取图片宽高

              intPicW=opts.outWidth;

              intPicH=opts.outHeight;

             

//获取屏幕的宽高,

              DisplayMetricsmetrics=new DisplayMetrics();

              getWindowManager().getDefaultDisplay().getMetrics(metrics);

              intscreenW=metrics.widthPixels;

              intscreenH=metrics.heightPixels;

             

              //获取图片跟屏幕的比例

              intblw=PicW/screenW;

              intblh=PicH/screenH;

             

//如果比例小于1则说明图片的宽/高小于屏幕宽 :按照原照片宽高显示

              intbl=0;

              if(blw<=1&&blh<=1){

                     bl=1;

              }else{

//如果比例大于1,则说明图片尺寸大于屏幕尺寸,则需要缩放,注:取比例值较大的赋给最终缩放比例

                     bl=blw>blh?blw:blh;

              }

              //设置比例 opts.inSampleSize=bl; 此方法将把图片缩放至1/bl的尺寸

              opts.inSampleSize=bl;

             

              //将inJustDecodeBounds只获取图片宽高的属性设置为false。真正加载图片

              opts.inJustDecodeBounds=false;

              Bitmapbitmap=BitmapFactory.decodeResource(getResources(), R.drawable.aa, opts);

              iv.setImageBitmap(bitmap);

              

0 0