ImageView android:scaleType,放大,垂直居中,左对齐?

Posted

技术标签:

【中文标题】ImageView android:scaleType,放大,垂直居中,左对齐?【英文标题】:ImageView android:scaleType, scale up, center vertical, left align? 【发布时间】:2011-11-16 22:39:01 【问题描述】:

我有一个固定大小的图像视图:

layout_
layout_

但是我想要放置的位图可以是可变的宽度/高度。我想缩放位图(保持纵横比)以适应 100dip、50dip 空间。放大后,我想垂直居中,左对齐。

是否有任何预定义的 imageview android:scaleType 标志为我们这样做?

如果没有,是否只有自己手动修改位图的唯一方法(创建一个 100dip、50dip 倾角大小的画布,然后将位图放大后放置在画布中我想要的位置)?

谢谢

【问题讨论】:

【参考方案1】:

您不需要创建画布,可以使用 imageview 的 setImageMatrix 方法代替。像这样:

final Bitmap bitmap = ...;//your bitmap
final int bitmapWidth = bitmap.getWidth();
final int bitmapHeight = bitmap.getHeight();
final float scaleRatio = Math.min(100f/bitmapWidth,50f/bitmapHeight);
final float deltaX = (100 - bitmapWidth * scaleRatio)/2;
final float deltaY = (50 - bitmapHeight * scaleRatio)/2;
final Matrix matrix = new Matrix();
matrix.postScale(scaleRatio,scaleRatio);
matrix.postTranslate(deltaX,deltaY);
imageView.setImageBitmap(bitmap);
imageView.setImageMatrix(matrix);

【讨论】:

以上是关于ImageView android:scaleType,放大,垂直居中,左对齐?的主要内容,如果未能解决你的问题,请参考以下文章

android中imageview里的图片大小是不是可以比imageview本身大,如果可以,如何设置?

Android ImageView图片自适应

Android ImageView(scaleType属性)

android中关于ImageView的问题

Android课程---Android ImageView的scaleType属性与adjustViewBounds属性(转)

Android——ImageView的scaleType属性与adjustViewBounds属性 (转)二