如何让ImageView缩放图像并对齐右上角?

时间:2011-03-09 16:25:35

标签: android-layout imageview

我花了3个小时试图让这个工作没有成功,所以在这里有人可以提供帮助。

我有一个FrameLayout,它是通过XML文件中的inflate加载的,在其中我有以下布局:

    <LinearLayout 
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical" >
        <ImageView 
        android:id="@+id/element_image"
            android:layout_width="wrap_content"
            android:layout_height="0dip" 
            android:layout_weight="1"
            android:layout_marginBottom="10dip"
            android:layout_marginLeft="10dip"
            android:scaleType="fitStart"
            android:background="#888888" >      
        </ImageView>
        <Button android:id="@+id/element_button"
            style="@style/Button"
            android:layout_gravity="right"
            android:text="@string/element_button_label"
        />  
    </LinearLayout> 

<LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical" > <ImageView android:id="@+id/element_image" android:layout_width="wrap_content" android:layout_height="0dip" android:layout_weight="1" android:layout_marginBottom="10dip" android:layout_marginLeft="10dip" android:scaleType="fitStart" android:background="#888888" > </ImageView> <Button android:id="@+id/element_button" style="@style/Button" android:layout_gravity="right" android:text="@string/element_button_label" /> </LinearLayout>

我有一个从BLOB加载的图像,我想在这个ImageView中显示。在GalleryAdaptor中,我加载了如下图像:

当我在上面的布局中使用android:scaleType =“fitStart”时,图像不会缩放到ImageView的高度或宽度,但大约是它的宽度的三分之一(我可以从我给出的灰色背景中看到它)并且居中。

如果我使用android:scaleType =“fitXY”,则缩放图像高度,但宽度不是。图像再次居中。

有人可以给我一些指示:

  1. 如何使图像在高度和宽度上均可缩放
  2. 如何将图像右上方对齐

1 个答案:

答案 0 :(得分:1)

在这里回答我自己的问题 - 但看起来这只是源图像分辨率的一个问题。当使用fitStart或fitEnd时,Android(至少2.2)似乎不想扩展这些图像 - 但是当使用fitXY时,它会缩放它们。