使用变量设置customView的大小

时间:2012-08-19 14:53:40

标签: android

我有一个自定义视图,它生成一个弧,我已经像这样放入了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;
    }       

如何将宽度和高度设置为变量?

1 个答案:

答案 0 :(得分:2)

您可能想问'如何设置宽度和高度以查看'。

您需要在Activity类中引用ArcView的实例,在Activity的onCreate方法中更精确,如下所示:

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

此外,根据密度计算宽度和高度,并通过

将其设置为您的视图
arcView.setLayoutParams(myLayoutParams);

LinearLayout.LayoutParams