Есть ли возможность дать marginTop столько же, сколько высоты просмотров в xml?
У меня есть такой imageView
и я пытаюсь дать ему минус запас вершины столько же, сколько его height / 2
, Я могу сделать это программно, но я удивляюсь, возможно ли это и в xml, или в опубликованном процентном соотношении. Я не знаю, как это сделать или возможно?
1 ответ
- Редактировать: как подсказывает @aga, кажется, что есть способ достичь этого с помощью библиотеки поддержки процентов-
Если вы хотите использовать этот тип 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. Йо, затем просто включите CustomView в свой макет XML, выберите HalfMarginImageView
и используйте его как обычный imageView.