2010-05-14 3 views
1

Я работаю над приложением Android, которому необходимо загрузить изображение и отобразить его внутри ImageView. Bitmap передается в основной файл Java и добавил к просмотру изображения, как это:Растровое изображение в ImageView обрезано с экрана

comic = (ImageView) findViewById(R.id.comic); 
comic.setImageBitmap(c.getImageBitmap()); 

Это работает, за исключением того, что левая сторона изображения исчезает с экрана. ImageView находится в ScrollView, который поддерживает правильный размер. Это означает, что в ScrollView есть черное пространство справа, и изображение обрезается влево.

XML, для ImageView это:

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <HorizontalScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <ImageView 
      android:id="@+id/comic" 
      android:layout_height="fill_parent" 
      android:layout_width="fill_parent" 
      android:layout_gravity="center" 
      android:src="@drawable/xkcdlogo" /> 
    </HorizontalScrollView> 
</ScrollView> 

Любая идея, почему мое изображение отрезают?

Спасибо!

ответ

5

Вы пробовали установку андроида: scaleType = "center", а не android: layout_gravity = "center"?

Это центрирует изображение в ImageView без масштабирования.

+0

Спасибо! Это устранило проблему, однако теперь изображения, которые достаточно малы, чтобы поместиться на экране, выровнены в верхнем левом углу. Любой способ исправить это? – Computerish

+1

Используйте 'centerCrop' вместо' center'. Все варианты можно найти здесь с очень ясным объяснением: [ImageView.ScaleType documentation] (http://developer.android.com/reference/android/widget/ImageView.ScaleType.html). Предупреждение: в моем графическом редакторе Eclipse Graphical Layout некоторые из этих типов шкалы отображаются неправильно. Используйте Силу и доверяйте документации, на реальных устройствах и эмуляторах она работает. –

+1

Есть ли способ сделать это, но иметь возможность анимировать изображение без его обрезания? – richy

1

Решение, которое, наконец, работал для меня, чтобы установить внутренний ImageView иметь фиксированную высоту и ширину больше, чем самый большой образ, добавить много дополнения, а затем установите android: scrollX и android: scrollY в xml, чтобы получить изображения, размещенные там, где они мне нужны. Это фиксировало проблему с обрезанием изображений в горизонтальном прокрутке.

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