2012-02-15 2 views
4

Я хочу поместить изображение справа от представления. Для этого я использую что-то вродеразмещение элемента справа в линейной компоновке в android

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

...some other elements 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    > 

    <ImageView 
     android:id="@+id/imageIcon" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"    
     android:layout_gravity="right" 
     android:src="@drawable/image_icon" > 
    </ImageView> 
</LinearLayout> 

... 
</RelativeLayout> 

Выше, кажется, помещает изображение где-то в центр. Как обеспечить правильное выравнивание изображения независимо от того, находитесь ли мы в портретном или альбомном режиме?

Thanx!

ответ

3

После этого, похоже, работает. Два изменения 1. используйте ориентацию = вертикальную, как предложено Zortkun 2. Используйте wrap_content в layout_width.

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/settingsIcon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:src="@drawable/settings_icon" > 
    </ImageView> 
</LinearLayout> 
+0

'android: orientation =" vertical "' пропадал все время .. :) удалите его и посмотрим .. –

0

Ориентация по умолчанию LinearLayout является горизонтальной. Убедитесь, что ориентация линейного макета установлена ​​на Вертикальный или иначе вы не можете использовать материал по горизонтали.

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    > 
+0

Thanx для супер быстрого ответа - а жаль - это не сработал. – serverman

+0

whatelse находится в вашем 'linearlayout'? –

+0

Больше ничего. Оставшаяся часть находится во внешней относительной компоновке - в основном я хочу, чтобы строка имела только одно изображение с правой стороны. Я могу, конечно, использовать левый край (это работает), но я хочу использовать выравнивание, поэтому мне не нужно беспокоиться о портретном/ландшафтном режиме ... – serverman

0

Вам не нужен Linearlayout, если вы используете только один вид внутри Linringayout.

Во всяком случае его здесь,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

//...some other elements 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right"> 

    <ImageView 
     android:id="@+id/imageIcon" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"    
     android:layout_gravity="right" 
     android:src="@drawable/image_icon" > 
    </ImageView> 
</LinearLayout> 

</RelativeLayout> 
Смежные вопросы