如何在自定义布局中居中对齐视图?

时间:2012-02-28 10:41:41

标签: android layout

我正在使用带有自定义视图的自定义布局。布局为RelativeLayout,视图为ImageViewImageView根据屏幕的最小宽度或高度进行缩放,以保持我想要显示的图像的比例,同时仍然显示整个图像。

我无法弄清楚如何在布局中居中对齐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表明它应该)但是无论我对布局做了什么我都无法使位图居中。

我真的选择了基于布局的位图定位,而不是基于计算像素的定位。

1 个答案:

答案 0 :(得分:0)

在ImageViewLayout.java中添加此行

mCustomImageView.setGravity(Gravity.CENTER);