我的应用程序有一个椭圆形的大按钮作为背景,它是运行时创建的。我们将此按钮命名为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);
//...
Update2:以下内容创建了一个新的drawable,以便父和子按钮之间没有资源共享。
GradientDrawable idle = (GradientDrawable) ButtonSetupPanel.this.caller.getIdle().getConstantState().newDrawable();
答案 0 :(得分:1)
您对两个按钮使用相同的参考。使用两个不同的引用,但使用相同的设置。这种方式改变为小按钮的drawable将不会在大屏幕上可见,反之亦然。