图片的按比例显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图片的按比例显示相关的知识,希望对你有一定的参考价值。

1.获取手机当前分辨率

1.1

1  WindowManager wm=(WindowManager)getSystemService(WINDOW_SERVICE);
2  Point point=new Point();
3  wm.getDefaultDisplay().getSize(point);
4  int height=point.x;
5  int weight=point.y;

1.2

1 WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);  
2 int width = wm.getDefaultDisplay().getWidth();  
3 int height = wm.getDefaultDisplay().getHeight();  

1.3

1 WindowManager manager = this.getWindowManager();
2 DisplayMetrics outMetrics = new DisplayMetrics();
3 manager.getDefaultDisplay().getMetrics(outMetrics);
4 int width2 = outMetrics.widthPixels;
5 int height2 = outMetrics.heightPixels;

2.获取图片分辨率

1   BitmapFactory.Options options=new BitmapFactory.Options();         
2 options.inJustDecodeBounds=true;//执行这句话并不会true解析位图 但还能获取图片的宽高信息 3   Bitmap bitmap=BitmapFactory.decodeFile("/mnt/sdcard/1.jpg",options); 4 //获取图片的宽和高信息 5  int weights=options.outWidth; 6 int heights=options.outHeight;

3.计算缩放比

int scale=1;
int scaleX=(weights/weight);
int scaleY=(heights/height);
if (scaleX>=scaleY&&scaleX>scale){
    scale=scaleX;
   }
if (scaleY>scaleX&&scaleY>scale){
      scale=scaleY;
    }

4.按比例显示

options.inSampleSize=scale;
options.inJustDecodeBounds=false;
Bitmap bitmap1=BitmapFactory.decodeFile("/mnt/sdcard/1.jpg",options); iv.setImageBitmap(bitmap1);

 

以上是关于图片的按比例显示的主要内容,如果未能解决你的问题,请参考以下文章

掌握ConstraintLayout按比例设置视图大小

Android之使用weight属性实现控件的按比例分配空间

图片保持比例居中显示

iOS图片如何按比例显示

Android开发教程--设置ImageView图片的显示比例

CardView 不在披萨片段中显示图片