ImageView中的位图从屏幕上被裁剪掉

问题描述:

我正在研究需要下载图像并将其显示在ImageView中的Android应用程序。位图传递到主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> 

任何想法,为什么我的形象被切断?

谢谢!

你试过设置android:scaleType =“center”而不是android:layout_gravity =“center”?

这将使图像在ImageView中居中而不缩放。

+0

谢谢!这解决了这个问题,但是现在,足够小以适合屏幕的图像在左上方对齐。有任何解决这个问题的方法吗? – Computerish 2010-05-15 02:29:34

+1

使用'centerCrop'而不是'center'。所有选项都可以在这里找到非常明确的解释:[ImageView.ScaleType文档](http://developer.android.com/reference/android/widget/ImageView.ScaleType.html)。警告:在我的Eclipse Graphical Layout可视化编辑器中,某些缩放类型无法正确显示。使用Force并信任文档,在真实设备和仿真器上运行。 – 2011-08-11 17:25:45

+1

有没有办法做到这一点,但能够动态化图像,而不会被裁剪? – richy 2012-06-29 03:17:09

机器人:scaleType =“centerCrop”

终于为我工作的解决方案是设置内的ImageView具有固定的高度和宽度比最大图像大,增添了不少的填充,然后设置android:scrollX和android:scrollY在xml中获取放置在我需要它们的位置的图像。这解决了在水平滚动中裁剪图像的问题。