0

我有一个imageView,我试图给它减去边距顶部和它一样多height / 2。我可以以编程方式做到这一点,但我想知道是否有可能在 xml 中也可以使用 andorid 发布的百分比相对布局。我不知道该怎么做或可能吗?

4

1 回答 1

0

--编辑:正如@a​​ga 建议的那样,似乎有一种方法可以通过百分比支持库来实现它-

如果您想在imageView整个应用程序中更频繁地使用这种类型,您可以扩展 imageview 并将您的边距代码放在它的 onMeasure 中:

public class HalfMarginImageView extends ImageView {

    public HalfMarginImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        ((ViewGroup.MarginLayoutParams) getLayoutParams()).topMargin = -getMeasuredHeight() / 2;
    }
}

为此,视图必须是 ViewGroup 的一部分。此外,请确保将构造函数与 AttributeSet 一起使用,否则无法从 xml 创建视图。哟然后只需在您的布局 xml 中包含一个 CustomView,选择HalfMarginImageView并将其用作普通 imageView。

于 2015-08-21T10:05:38.883 回答