2013-08-10 8 views
0

Я только что создал графический интерфейс с одним ImageView. Код ниже:Изображение не поддерживает соотношение, как его сохранить?

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/TableLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center|top" 
    android:background="@drawable/exam_list_bg" 
    android:gravity="top|center" > 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/exam_icon_failed" /> 

    </TableRow> 

</TableLayout> 

Некоторые подробнее: - exam_icon_failed.png (97x175) - я использую Galaxy Nexus в качестве устройства предварительного просмотра (в затмении)

И проблема: - На экране предварительного просмотра я вижу, что изображение в порядке (соотношение сторон, без растягивания). Но когда я устанавливаю телефон (тот же размер экрана с устройством предварительного просмотра) -> изображение растягивается.

Не могли бы вы дать несколько советов для этого случая? Я хочу сохранить коэффициент изображения. Большое спасибо!

+0

Я полагаю, что проблема связана с TableLayout. Вы пробовали другой макет? Что делать, если вы используете простой LinearLayout и добавляете свое изображение - оно тоже растянуто? – Ridcully

+0

Является ли изображение растянутым по горизонтали или по вертикали? Разве это растягивается до ширины экрана или -высота или немного «не в форме»? – Ridcully

+0

Привет, я пробовал и не работал. Как бы я ни старался с другим изображением и видел, что все в порядке. возможно ли, если проблема исходит из размера изображения? P/s: для вашего вопроса: он растянулся горизонтально и немного «не в форме». –

ответ

0

Благодарим за вашу помощь. Наконец-то я обнаружил, что он исходит из моего рабочего стола (точно разрешение экрана).

Когда я просматриваю исходное изображение с помощью своего рабочего стола, он выглядит как квадрат. Я сфотографировал с моего рабочего стола здесь: http://i1312.photobucket.com/albums/t530/langhoangal/myQuestions/original_inDesktop_zpsbab06700.jpg

Но когда я его открыть мой ноутбук, я могу видеть это так (я думаю, вы видите, как это): http://i1312.photobucket.com/albums/t530/langhoangal/myQuestions/original_inLaptop_zpsbf19a22c.jpg -> то же самое с тем, что я могу видеть в моем Телефон.

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

Большое спасибо за всех вас! Cheer!

1

Добавить scaleType в свой ImageView так:

<ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="centerInside" 
     android:src="@drawable/exam_icon_failed" /> 
+0

Я пробовал с вашим решением, но это не сработало. У вас есть какое-либо решение? –

+0

Возможно, я неправильно понимаю вашу проблему. Это решение гарантирует, что исходное соотношение сторон изображения будет сохранено и либо уменьшит изображение, либо поместит изображение в исходное разрешение, если оно меньше, чем ImageView. – Bobbake4

1

Пожалуйста, попробуйте следующее:

<ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/exam_icon_failed" 
      android:adjustViewBounds="true"/> 

и применять 9-патч к изображению, если это возможно. Надеюсь это поможет.

+0

Привет, я пробовал, но он не работает. :( –

+0

Это не сработало, я предлагаю вам иметь более крупное изображение, соответствующее размеру экрана телефона, в противном случае он будет растягиваться. Надеюсь, это поможет, ура! – user2652394

1

изменить вид изображения, как

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:scaleType="center" 
    android:src="@drawable/exam_icon_failed" /> 

может помочь вам и кто-то ..