2013-04-12 7 views
3

Предположим, у вас есть этоПропорционально размер ImageView в Android

<ImageView 
     android:id="@+id/mainImageView" 
     android:layout_width="match_parent" 
     android:background="@drawable/mylogo_250px60px" 
/> 

Я хотел бы определить высоту, так что весы в соответствии с шириной. Поэтому, если Android решит масштабировать логотип, который будет отображаться по ширине, высота также должна увеличиться.

Можно ли также определить что-либо, поэтому, когда телефон наклонен от вертикали до горизонтали, логотип будет масштабироваться правильно?

(В принципе, логотип выше ListView по основной деятельности)

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

<ImageView 
     android:id="@+id/mainImageView" 
     android:layout_width="match_parent" 
     android:background="@drawable/mylogo_250px60px" 
     android:layout_height="wrap_content" 
     android:scaleType="centerInside" 
     android:adjustViewBounds="true"          
    /> 

Если я его дизайн в Затмении/ADT логотип графический инструмент получает 76dp и хорошо смотрится на моих двух тестовых телефонов. Однако, я думаю, что должно быть возможно просто масштабировать изображение правильно?

"фиксированная высота" имеет правильную Rato к ширине (вертикальный вид, а не когда наклонен телефон) enter image description here

появляется "авто высота" неправильное соотношение мудры по сравнению с шириной: enter image description here

+1

Не могли бы вы показать нам выходное изображение для нас? –

+0

Хорошо. Я загружу версию 76dp height + предлагаемое изменение, которое не работает – Tom

+0

Теперь я загрузил два скриншота. Я думаю, я мог бы использовать фиксированный, но я бы предпочел использовать конфигурацию, в которой изображение будет автоматически изменяться и масштабироваться независимо от того, что – Tom

ответ

9

Изменить код изображения как показано ниже

<ImageView 
     android:id="@+id/mainImageView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:src="@drawable/mylogo_250px60px" 
     android:scaleType="fitEnd" 
     android:adjustViewBounds="true" 
    /> 
+1

К сожалению, высота остается крошечной (не измененной/масштабированной) с шириной, растянутой в соответствии с шириной родителя. – Tom

+0

, если возможно сделать 9-патч, пригодный для вашего изображения, вы можете попробовать это –

1

Попробуйте th является:

<ImageView 
     android:id="@+id/mainImageView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:src="@drawable/mylogo_250px60px" 
     android:scaleType="fitEnd" 
     android:adjustViewBounds="true" 
     /> 

надеется своей помощью

+0

С помощью 9 патч-андроида: требуется настройкаViewBounds. Благодарю. – francas

-1

Это прекрасно работает:

<ImageView 
    android:id="@+id/mainImageView" 
    android:layout_width="wrap_content" 
    android:background="@drawable/mylogo_250px60px" 
    android:layout_height="wrap_content"          
/> 

Единственная проблема: рисуешь должен быть по крайней мере так велик, как его родитель.

Рендеринга не позволит ImageView быть шире, чем его родитель:

  • Так что это будет соответствовать точно по ширине
  • И он будет держать пропорционально (из-за wrap_content)

Обычно я рассчитываю для телефона с разрешением 1080x1092 (fullHD).

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