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 に答える