0

アークを生成するカスタムビューがあり、このようにxmlを入力しました

<com.example.application.ArcView
        android:id="@+id/arcView1"
        android:layout_width="@string/arc_size"
        android:layout_height="@string/arc_size"
        android:layout_centerInParent="true" />

画面の密度に応じて高さと幅が変化します

このようにコーディングしましたが、機能しません

Resources res = getResources();
    String arcSizeString = res.getString(R.string.arc_size);

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    switch(metrics.densityDpi){
         case DisplayMetrics.DENSITY_LOW:
             arcSize = 170;
             arcSizeString = (arcSize + "px");
                    break;
         case DisplayMetrics.DENSITY_MEDIUM:
             arcSize = 227;
             arcSizeString = (arcSize + "px");
                     break;
         case DisplayMetrics.DENSITY_HIGH:
             arcSize = 342;
             arcSizeString = (arcSize + "px");
                     break;
    }       

幅と高さを変数に設定するにはどうすればよいですか?

4

1 に答える 1

2

おそらく、「ビューに幅と高さを設定する方法」を尋ねたいと思います。

次のようなActivityのonCreateメソッドでより正確にするには、ActivityクラスでArcViewのインスタンスを参照する必要があります。

ArcView arcView = (ArcView)findViewById(R.id.arcView1);

その後、密度に基づいて幅と高さを計算し、を介してビューに設定します

arcView.setLayoutParams(myLayoutParams);

LinearLayout.LayoutParams

于 2012-08-19T15:14:46.640 に答える