0

私はRelativeLayoutを使用して簡単なツールバーを作成しています

そして、私が使用しているボタン画像に次のコードを使用します。

ImageButton back = new ImageButton(ctx.getContext());
                RelativeLayout.LayoutParams backLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                backLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL);


                back.setLayoutParams(backLayoutParams);
                back.setContentDescription("Back Button");
                back.setId(2);
                try {
                    back.setImageBitmap(loadDrawable("icon_left.png"));
                } catch (IOException e) {
                    Log.e(LOG_TAG, e.getMessage(), e);
                }
                back.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                       //
                    }
                });

ツールバーに追加するため

toolbar.addView(back);

私が使用しているツールバーの場合、

RelativeLayout toolbar = new RelativeLayout(ctx.getContext());
toolbar.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,60));           

問題は、ボタンの画像がレイアウトパラメータ内に表示されないことです。

setMarginを使用してみましたが、さまざまな画面解像度でスケーリングされません。

ここに画像の説明を入力してください

これを行う方法についての指示が必要です。

4

3 に答える 3

2

背面の画像を背景として設定してみてください。Androidオペレーティングシステムによって自動的に拡大縮小されます。その画像を.9.pngに変換して、テキストが引き伸ばされないようにすることをお勧めします。ボタンの外観だけです。

ところで、そこに見栄えの良いボタン。

編集:あなたのコードを注意深く見た後、私はあなたが単にコードを置き換えることができると思います

back.setImageBitmap(loadDrawable("icon_left.png"));

back.setBackgroundDrawable(loadDrawable("icon_left.png"));
于 2012-06-27T12:58:52.743 に答える
1

あなたが書いたので、それはレイアウトを埋めません:

RelativeLayout.LayoutParams backLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

あなたが望む結果は何ですか?

于 2012-06-27T13:19:22.647 に答える
0

デフォルトでImageButtonは、テキストの背後にあるのと同じように、画像の背後にボタンの背景がありButtonます。

コードを呼び出して、バックグラウンドを無効にsetBackgroundDrawable(null)します。

于 2012-06-27T13:02:48.280 に答える