使用编程方式向LinearLayout添加具有权重的视图

4
我遇到了以下问题: 为了实现问答应用中的调查结果漂亮输出,我想展示可能的回答和回答特定问题的人数百分比。因此,我想向我的应用程序添加一个“柱形图”,显示百分比。我尝试通过在线性布局中使用视图并给它们加权来解决这个问题。
我想以编程方式添加不同的答案,这是我到目前为止得到的代码。 我的问题是,我无法接近加权视图并调整它们的大小。
/* Add all questions */ 
RelativeLayout my_root = (RelativeLayout) findViewById(R.id.ownerRL);

/* Add a new Linearlayout as a container for the question */
LinearLayout A = new LinearLayout(this);
A.setOrientation(LinearLayout.HORIZONTAL);
my_root.addView(A);

/* Create a new View in this container, for the status bar */
View new_view = new View(getBaseContext());
new_view.setBackgroundColor(Color.YELLOW);

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(50, 20, 3);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) A.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.question1);   

A.addView(new_view);
View new_view2 = new View(getBaseContext());
new_view.setBackgroundColor(Color.GREEN);
ViewGroup.LayoutParams lp2 = new ViewGroup.LayoutParams(50, 20);
RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) A.getLayoutParams();
params2.addRule(RelativeLayout.BELOW, R.id.question1);  
params2.addRule(RelativeLayout.LEFT_OF, new_view.getId());

A.addView(new_view2);

绿色视图实际上应该在黄色视图的右侧(但黄色视图不可见)。
如何管理它,使其创建一个高度为4像素的红/白条形图,其中红色和重量部分加权?
感谢您的帮助!
1个回答

11

请查看这个链接,动态设置线性布局的权重如下:

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT, 1.0f);
最后一个参数是权重。希望这可以帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接