我的应用程序有一个椭圆形的大按钮作为背景,它是运行时创建的。让我们将此按钮命名为 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();