我正在使用带有自定义视图的自定义布局。布局为RelativeLayout
,视图为ImageView
。
ImageView
根据屏幕的最小宽度或高度进行缩放,以保持我想要显示的图像的比例,同时仍然显示整个图像。
我无法弄清楚如何在布局中居中对齐ImageView。
这是一个非常基本的布局:
public class ImageViewLayout extends RelativeLayout {
public final CustomImageView mCustomImageView;
public ImageViewLayout(Context context) {
super(context);
mCustomImageView = new CustomImageView(context);
this.addView(mCustomImageView);
}
}
ImageView是(非常大但我会尝试将其保持可读性并在需要时进行扩展):
public class CustomImageView extends ImageView implements GestureDetector.OnGestureListener {
public CustomImageView(Context context) {
super(context);
mContext = context;
init();
}
public init() {
setBackgroundColor(0xFF222222);
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
setLayoutParams(params);
calculateAndDisplayBitmap();
}
}
我计算了初始布局后我想要显示的图像的大小,并且图像总是放在左上角,无论我尝试用布局做什么样的技巧。
背景被拉伸以填满整个屏幕(参数中的FILL_PARENT
表明它应该)但是无论我对布局做了什么我都无法使位图居中。
我真的选择了基于布局的位图定位,而不是基于计算像素的定位。
答案 0 :(得分:0)
在ImageViewLayout.java中添加此行
mCustomImageView.setGravity(Gravity.CENTER);