我有一个应用程序小部件,其中我想在右下方显示我的应用程序图标的缩小版本。图像的尺寸为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"
/>
更新
我实际上将图像放在不同的可绘制文件夹中,如下所示:
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
问题不在于图像缩放,而是图像上方的布局重叠。但不确定是否有解决方案。
答案 0 :(得分:0)
您应该将图像放入每个不同的可绘制文件夹(hdpi,ldpi,mdpi,xhdpi)。这应该有所帮助。另外,将android:scaleType
更改为fitCenter
。