gpt4 book ai didi

android - CusotomSwitch 绘制为按钮

转载 作者:行者123 更新时间:2023-11-30 03:58:46 26 4
gpt4 key购买 nike

我正在编写 CustomSwitch。它是从 Switch 扩展而来的.在某些情况下,在 onDraw() 方法中,我想将 CustomSwitch 绘制为 Button。

我尝试了几种方法,但都没有用。我不能在 onDraw() 中调用 ((Button)this).draw(canvas);,因为这会导致堆栈溢出。我尝试克隆 CustomSwitch 或对其进行膨胀并将其转换到 Button,但这两种方法都不起作用。

有没有人知道如何将 CustomSwitch 绘制为 Button?

最佳答案

好的,这就是我所做的。

private Button drawButton;
public CustomSwitch(Context context) {
super(context);
this.drawButton = new Button(context);
}
public CustomSwitch(Context context, AttributeSet attrs) {
super(context, attrs);
this.drawButton = new Button(context, attrs);
}
public CustomSwitch(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.drawButton = new Button(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
this.drawButton.measure(widthMeasureSpec, heightMeasureSpec);
};
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
this.drawButton.layout(left, top, right, bottom);
};
@Override
protected void onDraw(android.graphics.Canvas canvas) {
//...
if(condition) {
this.drawButton.draw(canvas);
}
}

关于android - CusotomSwitch 绘制为按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12910570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com