Растровое изображение в ImageView обрезается от экрана - PullRequest
1 голос
/ 14 мая 2010

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

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>

Есть идеи, почему мое изображение обрезается?

Спасибо!

Ответы [ 3 ]

5 голосов
/ 14 мая 2010

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

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

3 голосов
/ 17 июня 2010

андроида: scaleType = "centerCrop"

1 голос
/ 01 августа 2010

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

...