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(scaleType属性)
Android课程---Android ImageView的scaleType属性与adjustViewBounds属性(转)