6

ボタンの背景画像を拡大縮小する必要がありますが、ビットマップに変換できません。現在のコードは次のとおりです。

int height = 50;
int width = 80;

Button b = new Button (this);
b. setBackgroundResource(R.drawable.btn);

次に、「高さ」と「幅」に応じて「R.drawable.btn」をスケーリングする必要があります。setBackgroundResourceはビットマップを受け入れません。それ、どうやったら出来るの?

ありがとうございました。

4

2 に答える 2

18

レイアウトパラメータで縮尺を制御できるようにすることも、画像を自分で縮尺することもできます。

レイアウトで画像を拡大縮小できるようにします。

b.setBackground(getResources().getDrawable(R.drawable.btn));

画像を手動で拡大縮小します。

Bitmap original = BitmapFactory.decodeResource(context.getResources(), R.drawable.btn);
Bitmap b = Bitmap.createScaledBitmap(original, width, height, false);
Drawable d = new BitmapDrawable(context.getResources(), b);
button.setBackground(d);

警告:画像が期待どおりに正確に拡大縮小されて画面に表示されない場合があります。これは、のレイアウトパラメータによってはButton、Androidがデバイスのハードウェア画面密度に基づいて画像を追加で拡大縮小する場合があるためです。

于 2013-03-26T01:26:45.700 に答える
0

これにより、ビットマップがドローアブルに変わります

image = new BitmapDrawable(getResources(),MenuScreen.image1);

imageはドローアブル、image1はビットマップです

于 2013-03-26T01:30:53.937 に答える