0

我的应用程序有一个椭圆形的大按钮作为背景,它是运行时创建的。让我们将此按钮命名为 A。

当我启用某些功能时,A 的可见性设置为 GONE,并显示四个较小的按钮,与 A 的背景相同。

当我隐藏按钮并再次显示 A 时,它具有适当的大小,但背景可绘制对象仍然是先前绘制的较小按钮的大小。如何调整它的大小以填充 A 按钮的大小?

更新:我的代码

//BigButton.java
//...
GradientDrawable idle = new GradientDrawable();
idle.setColor(Color.rgb(red, green, blue));
idle.setShape(GradientDrawable.OVAL);
idle.setStroke(2, Color.rgb(red2, green2, blue2));
btn.setWidth(50*3f);
btn.setHeight(65*3f);
btn.setBackgroundDrawable(idle);
//...

//ChildButton.java
//...
GradientDrawable idle = BigButton.this.getIdleDrawable();
btn2.setWidth(50);
btn2.setHeight(65);
btn2.setBackgroundDrawable(idle);
//...

更新2 :以下创建一个新的drawable,这样父按钮和子按钮之间就没有资源共享。

GradientDrawable idle = (GradientDrawable) ButtonSetupPanel.this.caller.getIdle().getConstantState().newDrawable();
4

1 回答 1

1

您对两个按钮使用相同的参考。使用两个不同的参考,但具有相同的设置。这种方式对小按钮的可绘制对象的更改将不会在大按钮上可见,反之亦然。

于 2013-07-04T20:44:31.683 回答