1. ホーム
  2. android

[解決済み] android:background を伸縮しないように実装するには?

2022-12-22 05:13:57

質問

私はこれを見つけた 素晴らしいスレッド には、ケーキを食べながらそれを食べる方法、つまり、画像を使って Button の代わりに ImageButton (これは SetText() やリサイズなどはできません)。

これは、View属性を使用することで実現されます。

android:background="@drawable/bgimage"

これの唯一の問題は、ボタンのサイズに合わせて画像が引き伸ばされることです。

固定のボタンサイズ(ピクセル単位!)をハードコーディングすることなしに、Androidに伝える方法はありますか? ではなく に伝える方法はありますか?

どのように解決するのですか?

あなたは 画像表示 を使うべきです。 背景画像は常にビューに合うように引き伸ばされます。 オブジェクトに画像のアスペクトを強制するために、それをDrawableとして設定する必要があります。

そうでなければ、もしあなたがボタンのアイデアに固執しているなら、画像が引き伸ばされるのを防ぐために、ボタンで強制的にスケーリングする必要があります。

コードです。

onCreate(Bundle bundle) {
  // Set content layout, etc up here

  // Now adjust button sizes
  Button b = (Button) findViewById(R.id.somebutton);
  int someDimension = 50; //50pixels
  b.setWidth(someDimension);
  b.setHeight(someDimension);
}