2012-07-12 55 views
1

我有一个应用程序小部件,并且在其中我想在右下角显示我应用程序图标的缩小版。图像的尺寸为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" 
/> 

UPDATE:

其实我有不同的绘制文件夹中的形象,打破了这样的:

绘制-LDPI:36X36

绘制-MDPI:48×48

绘制,华电国际:最高72x72

绘制-xdpi:96×96

我把该装置屏幕截图是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> 

UPDATE 3

问题不与所述图像的缩放,这是图像上方的布局重叠。不知道解决方案。

回答

0

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

+0

其实,我在我的OP中错过了。我确实有不同的可绘制文件夹中的图像,每个文件夹都有不同的尺寸。我会更新我的OP,因为格式更好。但是,我尝试使用'fitCenter',但得到了相同的结果。 – 2012-07-12 01:51:32

+0

嗯...你有没有尝试过'centerInside' for your scaleType? – BlackHatSamurai 2012-07-12 01:57:33

+0

试过了,'centerInside'没有运气。我再次更新了我的OP,以显示“ImageView”所在的整个布局,如果有帮助的话。 – 2012-07-12 02:25:36

相关问题