web-dev-qa-db-ja.com

Androidカスタムビューの高さと幅をプログラムで設定

Graphviewという名前のカスタムビューを作成しました。 GraphViewクラスの構造は次のとおりです。

public class GraphView extends View {

    public GraphView(Context context, float[] values, String title, String[] horlabels, String[] verlabels, boolean type) {
        super(context);
                ........
   }

   ..................
   .................
}

addview()を使用してテーブル行にビューを追加しました。正常に動作しています。ここで、GraphViewの高さと幅を設定します。どうやってするか?

112
dev_android

簡単な方法は、そのようにプログラムでサイズを設定することです:

graphView.setLayoutParams(new LayoutParams(width, height));

ビューの正確なサイズがわかっている場合、これは問題ありません。ただし、より柔軟なアプローチが必要な場合は、onMeasure()メソッドをオーバーライドして、使用可能なスペースとレイアウトの制約(wrap_contentmatch_parent、または固定サイズ)に応じてビューをより正確に測定できます。

SDKディレクトリの Android docs およびLabelViewサンプルを参照すると、onMeasure()をオーバーライドする方法の例を見つけることができます。

121
Dalmas

次のように高さと幅を設定できます。

myGraphView.setLayoutParams(new LayoutParams(width, height));
205
Eric Nordvik

このような相対的なレイアウトでビューの高さと幅を設定できます

ViewGroup.LayoutParams params = view.getLayoutParams();
params.height = 130;
view.setLayoutParams(params);
66
Rakshi
spin12.setLayoutParams(new LinearLayout.LayoutParams(200, 120));

spin12はスピナーであり、212widthheightおよびspinnerです。

4
Ujjwal

これは、親ビューがLinearLayoutのインスタンスであると仮定して、Kotlinベースのバージョンです。

someView.layoutParams = LinearLayout.LayoutParams(100, 200)

これにより、幅と高さ(100および200)を1行で設定できます。

1
Morgan Wilde