1

ウェイトを使用してボタンをレイアウトするためにテーブル レイアウトを使用します。ボタンは 0dip サイズまたは wrap_content を取得するため、ウェイトによって拡張されます。

ボタンを ImageButton に変換し、画像をボタンのサイズに設定し、拡大しないようにしようとしています。

ボタンを作成してサイズを取得してから、イメージを割り当て、ImageButton.setMaxHeight(); を使用して高さを制限します。

final ImageButton ib = (ImageButton) findViewById(R.id.buttonOptions);
    ib.post(new Runnable() {
        public void run() {
            final int height = ib.getHeight();
            ib.setScaleType(ScaleType.FIT_CENTER);
            ib.setMaxHeight(5); // or height    
            ib.setImageResource(R.drawable.options);

        }});

画像は元のサイズで描画されているため、ボタンが拡大されています... setMaxHeight() は画像の高さ/幅を制限していません。理由はありますか?

4

3 に答える 3

3

を使って解決しました

ib.setAdjustViewBounds(true);
于 2013-01-02T10:43:47.700 に答える
0
ViewTreeObserver observer = ib.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
//here you can get height and set height
}

よくわかりませんが、試してみてください。役立つかもしれません。

于 2013-01-02T06:24:45.483 に答える
0

setMaxHeight() は imagebutton 用であり、その中の画像用ではありません。

試す、

ib.setScaleType(ScaleType.CENTER_CROP);
于 2013-01-02T06:29:54.183 に答える