Android以编程方式设置自定义视图的高度和宽度

时间:2011-02-18 14:01:26

标签: android view height width params

我创建了一个名为Graphview的自定义视图。这是GraphView类的结构。

public class GraphView extends View {

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

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

我已使用addview()在tablerow中添加了视图。它工作正常。现在我想设置GraphView的高度和宽度。怎么做?

6 个答案:

答案 0 :(得分:205)

您可以像这样设置高度和宽度:

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

答案 1 :(得分:121)

简单的方法是以编程方式设置大小:

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

如果你知道视图的确切大小,这很好。但是,如果您想要更灵活的方法,则可以覆盖onMeasure()方法,以根据可用空间和布局约束(wrap_contentmatch_parent或修正的方式更精确地测量视图尺寸)。

您可以通过查看SDK目录中的android docsonMeasure()示例来查找有关如何覆盖LabelView的示例。

答案 2 :(得分:66)

您可以在相对布局中设置视图的高度和宽度,如

ViewGroup.LayoutParams params = view.getLayoutParams();
params.height = 130;
view.setLayoutParams(params);

答案 3 :(得分:4)

spin12.setLayoutParams(new LinearLayout.LayoutParams(200, 120));

spin12是您的微调器, 200 120 widthheightspinner。< / p>

答案 4 :(得分:1)

这是基于Kotlin的版本,假设父视图是LinearLayout的实例。

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

这允许在一行中设置宽度和高度(100200)。

答案 5 :(得分:1)

在Kotlin上,您可以直接使用其虚拟属性设置任何视图的宽度和高度:

someView.layoutParams.width = 100
someView.layoutParams.height = 200