0

背景として画像を含むボタンを使用します。この画像のサイズは 30x29 ですが、サイズが変更されて 2 倍に拡大されています (と思います)。これが私のボタンのXMLコードです:

<Button
        android:id="@+id/buttonBack"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="12dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/bouton_back"
        android:maxHeight="30dp"
        android:maxWidth="30dp" />

そしてJavaで:

backButton = (Button) findViewById(R.id.buttonBack);

それの何が問題なのですか?他のボタンも同じようにしていますが問題ありません...ありがとうございます。

4

3 に答える 3

1

bouton_back複数の密度を使用してリソースを供給していますか?単位を使用dpしてボタンのサイズを設定するだけでは不十分です。また、複数のサイズの画像を提供する必要があります。

  • ldpi:120dpi
  • mdpi:160dpi
  • hdpi:240dpi
  • xhdpi:320dpi

換算式は次のとおりです。

px = dp * (dpi / 160)

ここpxで、はピクセル単位の最終的な画像サイズ、dpは密度に依存しない単位での目的のサイズ、dpiはターゲット密度です。

画像のピクセル単位のサイズをmdpiベースラインとして使用して、この式を単純化します。

ldpi = mdpi * 0.75
hdpi = mdpi * 1.5
xhdpi = mdpi * 2.0

サンプルコードに戻ると、30dp x 30dpのボタンが必要な場合は、密度ごとに画像を提供する必要があります。

  • ldpi:23px x 23px
  • mdpi:30px x 30px
  • hdpi:45px x 45px
  • xhdpi:60px x 60px
于 2012-07-09T16:41:35.247 に答える
1

フォルダの問題かもしれないと思います。画像ファイルはどこに置きましたか?(入っていれば問題ないかもしれませんdrawable-hdpi

編集

ps - ピクセルに依存しない dp 単位のものもあります。

于 2012-07-09T16:01:26.827 に答える
1

backgroundプロパティを使用している場合、Android はデバイスの解像度 ( ldpimdpihdpixhdpi画面) に応じて画像を引き伸ばします。画像を drawable-mdpi フォルダーに入れると、この係数に従って画像が引き伸ばされます。

ここに画像の説明を入力

于 2012-07-09T16:31:23.137 に答える