Растяжение изображения относительно размера экрана - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть макет с шестью кнопками.Все они имеют размер 72x72dip, поэтому на небольших экранах они выглядят больше, и наоборот.

Как я могу решить эту проблему?Я хочу, чтобы кнопки были примерно одинакового размера (например, 10% ширины экрана), но я не знаю, как это сделать.

Вот так выглядит мой макет:

enter image description here

Исходный код макета можно найти здесь .

Ответы [ 3 ]

0 голосов
/ 16 февраля 2012

Обычно я делаю это, устанавливая ширину и высоту wrap_content, а затем настраивая layout_weight в виджетах ImageButton, чтобы каждая кнопка занимала одинаковое количество места.Я обычно делаю scaleType="center_inside", чтобы они выстроились в очередь.Затем добавьте края TableView с полями, если необходимо.

0 голосов
/ 16 февраля 2012

Несколько быстрых наблюдений:

a.Вам не нужен TableLayout, просто используйте LinearLayout

b.Вам не нужны отдельные ImageView и TextView, вы можете использовать Button и изображение для него, используя

android:drawableTop="@drawable/"

c.Никогда не используйте абсолютные значения ширины / высоты любых представлений, поэтому используйте wrap_content.

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

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

 <!-- Row 1 -->
 <LinearLayout
    android:layout_height="0dp"
    android:layout_width="fill_parent"
    android:layout_weight="1.0"
    android:orientation="horizontal">

 <Button
    android:layout_height="wrap_content"
    android:layout_width="0"
    android:layout_weight="1.0"
    android:text="Preferences"
    android:drawableTop="@drawable/Preferences" />

 <Button
    android:layout_height="wrap_content"
    android:layout_width="0"
    android:layout_weight="1.0"
    android:text="Preferences"
    android:drawableTop="@drawable/Preferences" />

 </LinearLayout>

  .
  .
  .   
</LinearLayout>


</LinearLayout>
0 голосов
/ 16 февраля 2012

1 - Вы зафиксировали все свои «изображения» на layout_width & height 72dip? 2 - Обычно 72dip - это то же самое на любом размере экрана ... Но у вас все равно может быть 3 (или 4, если вы поддерживаете XHDPI) разрешение ваших изображений ...

2 - Добавить 4 разных шрифта для вас Drawable:

2,1 для рисования

2.2 drawable-ldpi

2,3 drawable-mdpi

2,4 drawable-hdpi

Рассмотрим следующее соотношение для ваших изображений: ldpi 3 MDP 4 HDI 6

Поэтому сначала убедитесь, что вы делаете изображения HDPI, чтобы вы могли по-разному изменять размеры других изображений, применяя пропорции 1,5 и 2 (например, просто разделите на 2 для LDPI).

3. Кстати, почему ты только что все это сделал сам? Кажется, вы на Android 4.0, почему бы вам просто не использовать новый класс "DashBoard" от Android?

...