0

Мне нужно программно выровнять ImageView в нижней части LinearLayout.Выравнивание ImageView до LinearLayout программно

Я, конечно же, уже пытался добавить ImageView в качестве дочернего элемента LinearLayout, но изображение получилось сжатым (причина, по которой LinearLayout меньше изображения), и мне нужно, чтобы изображение не изменялось, выровнены.

Я также попытался это:

RelativeLayout main_layout = (RelativeLayout) view.findViewById(R.id.main_layout); 
    LinearLayout line_0_layout = (LinearLayout) view.findViewById(R.id.line_0_layout); 

    ImageView horse_img = new ImageView(getActivity()); 
    horse_img.setImageResource(R.drawable.horse); 

    RelativeLayout.LayoutParams layout_params = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    layout_params.addRule(RelativeLayout.ALIGN_BOTTOM, line_0_layout.getId()); 

    horse_img.setLayoutParams(layout_params); 
    main_layout.addView(horse_img); 

, но он не работает: изображение добавляется к просмотру, но не выровнены по LinearLayout.

Кажется, простой вопрос, но это не так.

Заранее за вашу помощь.

+0

Является ли 'line_0_layout' ребенком' main_layout'? Поскольку указанный вами код может работать только в том случае, если это так. ALIGN_BOTTOM определяется как правило, которое выравнивает нижний край дочернего элемента с нижним краем другого дочернего элемента. Я не думаю (но я не уверен), что то, что вы пытаетесь сделать, возможно, если 'horse_img' и' line_0_layout' не разделяют родителя 'RelativeLayout'. –

ответ

0
layout_params.addRule(RelativeLayout.BELOW, line_0_layout.getId()); 
+0

Спасибо, но это выравнивает ImageView до нижней части основного макета, а не до нижней части макета line_0_layout. – thomaus

+0

отредактировал. попробуйте этот образец – Autocrab

+0

Не повезло ни одному. Макет не привязан к макете line_0_layout. – thomaus

Смежные вопросы