我想在我的应用中有一个背景,根据给定的数字改变颜色。让我详细说明一下。例如,我传递100中的数字40,屏幕的2 / 5s应该是x颜色,而其他3 / 5s应该是另一种颜色。这是两个小图:
40 / 100 40/60
+---+ +---+
| | 3/5 not filled in | | 1/3 not filled in
| | |...| 2/3 filled in
| | |...|
|...| 2/5 filled in +---+
|...|
+---+
所以我想我可以通过绘制形状来制作动态背景(给出一定数量)。问题是,我不确定如何做到这一点。我在哪里放置代码来绘制形状,以及我如何在正确的位置将它们插入到我的XML文件中(我已经在我的XML中有一个静态颜色背景)?
答案 0 :(得分:0)
好的,您需要创建一个包含两个线性布局的活动。 width属性将设置为 match_parent ,高度将设置为 0dp 。然后,您将能够使用X%的布局权重设置高度。
例如,这些布局将屏幕分成25%75%:
<LinearLayout
layout_weight="1"/>
<LinearLayout
layout_weight="3"/>
给他们一个id来以编程方式更改值(重量和背景颜色)。
你可以这样做:
LinearLayout top = findViewById(R.id.top);
//Third Param stands for weight
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, 0, 1.0f);
top.setLayoutParams(param);
top.setBackgroundColor(Color.BLUE);