2013-03-16 19 views
0

У меня есть LinearLayout (Горизонтальная), которую я использую для отображения 3 ImageViews. Когда я впервые добавляю ImageViews, последний сокращается, потому что изображения слишком велики, чтобы соответствовать 3 поперек. Вот что мой дизайнер экран выглядит следующим образом:Дополнительная набивка поверх моих изображений

after initially adding the three images

Обратите внимание на третьем изображении усадки.

Чтобы устранить эту проблему, я установил для каждого ImageView следующие атрибуты.

width: 0dp 
weight: 1 

Вот как мои изображения выглядят после установки этих атрибутов:

after setting attributes

Проблема Я бегу в это, даже если изображения были сжался есть еще пространство в нижнее и нижнее, как показано синим прямоугольником на следующем изображении:

padding

Мой вопрос: почему это дополнительные отступы там и как я могу избавиться от него?

Спасибо

UPDATE - добавление моего файла макета

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/RelativeLayout1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_gravity="center" 
android:background="@color/app_background_color" 
android:contentDescription="@string/game_image_button" 
android:gravity="center" 
tools:context=".EasyActivity" > 

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:id="@+id/ImageView02" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:contentDescription="@string/game_image_button" 
     android:src="@drawable/ruler200x200" /> 

    <ImageView 
     android:id="@+id/ImageView01" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:contentDescription="@string/game_image_button" 
     android:src="@drawable/ruler200x200" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:contentDescription="@string/game_image_button" 
     android:src="@drawable/ruler200x200" /> 
</LinearLayout> 

</RelativeLayout> 
+0

Просто любопытно, какой размер исходного изображения? Я имею в виду, это квадратное изображение «x by x»? –

+0

Это 200x200 пикселей, и он находится в drawable_hdpi –

+0

, если вы разместите код для всего макета, было бы легче понять – lelloman

ответ

0

ImageViews поддерживают различные ScaleTypes, по умолчанию FIT_CENTER. here - другие варианты. FIT_CENTER означает, что он начнет с высоты и ширины, равной вашему изображению (как выглядели ваши изображения в первом снимке экрана, прежде чем добавить вес). Я считаю, что он изменил размер изображения на основе вашего layout_weight и сохранил соотношение сторон изображения, уменьшив его до новой ширины. Он оставил высоту первоначальной высотой и центрировал результат.

Я думаю, что один из других типов шкал будет делать то, что вы хотите. Может быть, CENTER или CENTER_INSIDE

0

Вы можете использовать следующий код

<Imageview..... 
android:adjustViewBounds="true" 
..../> 
Смежные вопросы