ImageView
比图片大。如何对齐控件右上角(和左下角)的图像?
附言我知道参数 scaleType
。它的值 fitStart
和 fitEnd
在这种情况下不合适,因为它们在对角对齐图像。
最佳答案
scaleType
不能让您在右上角或左下角对齐 View ,但 layout_gravity
可以。
...
<FrameLayout android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom"
android:src="@drawable/your_drawable"/>
</FrameLayout>
...
根据您的需要相应地更改layout_gravity
:
左下:开始|底部
右上角:顶部|结束
使用 layout_gravity
对齐 View 更简单。如果你不喜欢,你可以这样使用 ImageView & 矩阵:
private void alignTopRight(ImageView imageView)
{
imageView.setScaleType(ImageView.ScaleType.MATRIX); // !
final int drawableWidth = imageView.getDrawable().getIntrinsicWidth();
final int viewWidth = imageView.getWidth();
Matrix matrix = new Matrix();
matrix.postTranslate(viewWidth-drawableWidth, 0);
imageView.setImageMatrix(matrix);
}
private void alignBottomLeft(ImageView imageView)
{
imageView.setScaleType(ImageView.ScaleType.MATRIX); // !
final int drawableHeight = imageView.getDrawable().getIntrinsicHeight();
final int viewHeight = imageView.getHeight();
Matrix matrix = new Matrix();
matrix.postTranslate(0, viewHeight-drawableHeight);
imageView.setImageMatrix(matrix);
}
关于java - 将 ImageView 中的图像对齐到右上角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52024993/