1

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

这是图像的正常外观:

在此处输入图像描述

这是缩放的图像:

在此处输入图像描述

这是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"
 />

更新:

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

可绘制的 ldpi:36x36

可绘制 mdpi:48x48

可绘制的 hdpi:72x72

可绘制 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

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

4

1 回答 1

0

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

于 2012-07-12T01:35:37.057 回答