O bitmap no ImageView é cortada da tela
Pergunta
Estou trabalhando em um aplicativo Android que precisa baixar uma imagem e exibi -la dentro de um ImageView. O bitmap é passado para o arquivo Java principal e adicionado à visualização da imagem como esta:
comic = (ImageView) findViewById(R.id.comic);
comic.setImageBitmap(c.getImageBitmap());
Isso funciona, exceto que o lado esquerdo da imagem desaparece da tela. O ImageView está em um scrollView, que mantém o tamanho correto. Isso significa que há espaço preto à direita no ScrollView e a imagem é cortada à esquerda.
O XML para o ImageView é o seguinte:
<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>
Alguma ideia de por que minha imagem está sendo cortada?
Obrigado!
Solução
Você já tentou configurar Android: scaletype = "Center" em vez de android: layout_gravity = "Center"?
Isso centralizará a imagem no ImageView sem escalar.
Outras dicas
Android: Scaletype = "Centercrop"
A solução que finalmente funcionou para mim foi definir o ImageView interno para ter uma altura fixa e largura maior que a maior imagem, adicionar muito preenchimento e depois definir o Android: Scrollx e Android: Scrolly no XML para colocar as imagens colocadas onde eu precisava deles. Isso corrigiu o problema com as imagens sendo cortadas no pergaminho horizontal.