【发布时间】:2019-11-16 19:26:55
【问题描述】:
我有一个 LinearLayout,我想以编程方式设置背景。这个背景应该很简单,就是两个并排的长方形。矩形的宽度仅在运行时才知道。最好的方法是什么?
ShapeDrawable done = new ShapeDrawable(new RectShape());
done.setBounds(new Rect(0, 0, 0, 0));
done.getPaint().setColor(Color.GREEN);
ShapeDrawable remaining = new ShapeDrawable(new RectShape());
remaining.setBounds(new Rect(20, 0, 0, 0));
remaining.getPaint().setColor(Color.RED);
LayerDrawable composite = new LayerDrawable(new Drawable[]{remaining, done});
weightRow.setBackgroundDrawable(composite);
我试图创建一个像这样的复合可绘制对象,我希望剩余的矩形从位置 20 开始,但它只是填充了整个布局。
【问题讨论】:
-
我已经有一段时间没有使用
LayerDrawable了,但据我记得,像LayerDrawable这样的可绘制容器可能会在该容器中的所有可绘制对象之间保持或合并状态(如边界)。
标签: android