调整图像大小/缩放会导致失真

时间:2012-07-12 01:22:39

标签: android android-layout android-imageview

我有一个应用程序小部件,其中我想在右下方显示我的应用程序图标的缩小版本。图像的尺寸为36x36,图像在这些尺寸上看起来很好,但我希望图像更小,大约18x18。但是,如果我在图像编辑器中调整图像大小或尝试在代码中缩放图像,则图像会显示失真。

这是图像正常显示的内容:

enter image description here

这是缩放的图像:

enter image description here

这是我正在使用的ImageView代码:

<ImageView 
   android:id="@+id/widgetIcon"
   android:src="@drawable/icon"
   android:layout_width="18dp"
   android:layout_height="18dp"
   android:layout_alignParentRight="true"
   android:layout_centerVertical="true"
   android:scaleType="centerCrop"
 />

更新

我实际上将图像放在不同的可绘制文件夹中,如下所示:

drawable-ldpi:36x36

drawable-mdpi:48x48

drawable-hdpi:72x72

drawable-xdpi:96x96

我截取屏幕截图的设备是Galaxy Nexus。

更新2:

这是ImageView所在的整个布局,如果这有所不同的话。小部件的底部有RelativeLayout,其中包含ImageView

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/widgetLayout"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:padding="@dimen/widget_margin">

    <RelativeLayout
        android:id="@+id/widgetBgLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:paddingTop="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:background="@drawable/bg_widget"
         >

        <RelativeLayout
            android:id="@+id/widgetStatusLayout" 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_alignParentBottom="true"
            android:paddingTop="10dp"
          >
                <TextView 
                    android:id="@+id/widgetStatus" 
                    style="@style/WidgetStatus"
                    android:layout_centerVertical="true"
                    android:layout_alignParentLeft="true" 
                />

                <ImageView 
                   android:id="@+id/widgetIcon"
                   android:src="@drawable/icon"
                   android:layout_width="18dp"
                   android:layout_height="18dp"
                   android:layout_alignParentRight="true"
                   android:layout_centerVertical="true"
                   android:scaleType="centerInside"
                   android:adjustViewBounds="true"
                 />

            </RelativeLayout>
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:layout_above="@id/widgetStatusLayout"       
                    android:layout_alignParentTop="true"
             >      
                    <TextView 
                        android:id="@+id/widgetTitle" 
                        style="@style/WidgetTitle"
                    />

                    <TextView 
                        android:id="@+id/widgetText" 
                        style="@style/WidgetText"
                    />
            </LinearLayout>
    </RelativeLayout>

</FrameLayout>

更新3

问题不在于图像缩放,而是图像上方的布局重叠。但不确定是否有解决方案。

1 个答案:

答案 0 :(得分:0)

您应该将图像放入每个不同的可绘制文件夹(hdpi,ldpi,mdpi,xhdpi)。这应该有所帮助。另外,将android:scaleType更改为fitCenter