图文讲解Android的ImageView类中的ScaleType属性设置

2019-12-10 18:41:13丽君


其中 view 即 ImageView 图片视图容器对象,drawable 就是要显示的图片资源。
drawable.getMinimumWidth()  和 drawable.getMinimumHeight() 是获取图片在屏幕上的可视高度宽度,不一定是图片的原始高宽度,跟屏幕的像素密度有关,大概就是这样子的吧。注意要用浮点数值类型,不然可能取整变成 1 的倍数了。

将 dp 值转为像素值,因为 java 代码中操作的高宽都是像素值,而样式中都是用 dip 来兼容屏幕的

public static int dp2px(Context context, int dp) 
{ 
  float scale = context.getResources().getDisplayMetrics().density; 
  return (int) (dp * scale + 0.5f); 
} 

ok 大概就是这样搞定了,顺便弄个测试结果图

Android,ImageView,ScaleType

其实 center_crop  可以简单的实现该功能的,但是他不会自动扩展高度,他应该用的是图片的可视高度为容器高度然后再进行容器覆盖显示,也就是说容器高度不会按比例增大,导致图片几乎只显示一半不到的样子,如果图片比较小,那几乎没办法用了,还是必须要动态调整,如果图片尺寸比较大,特别是高度合适的话就可以直接用的