我试图通过扩展TextView来制作一个简单的按钮但是如果我绘制按钮的表面,它会覆盖文本以便文本隐藏。我怎么能在文字后面画出来?这是我的班级
public class DoodleButton extends TextView{
private float rx = 5f;
private float ry = 5f;
private float viewWidth, viewHeight;
private float positionX = 0, positionY = 0;
private Paint paintButton = new Paint();
private RectF area;
public DoodleButton(Context context, AttributeSet attrs) {
super(context, attrs);
init(attrs, 0);
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.DoodleButton, 0,0);
try{
rx = a.getFloat(R.styleable.DoodleButton_rx, 5f);
ry = a.getFloat(R.styleable.DoodleButton_ry, 5f);
}finally {
a.recycle();
}
}
private void init(AttributeSet attrs, int defStyle){
paintButton.setColor(Color.GRAY);
paintButton.setAntiAlias(false);
}
@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
super.onSizeChanged(xNew, yNew, xOld, yOld);
viewWidth = xNew;
viewHeight = yNew;
area = new RectF(0,0, viewHeight, viewHeight);
}
@Override
public void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.drawRoundRect(area, 5, 5, paintButton);
}
}
当我绘制roundRect时,它会重叠textView中的文本,我想让按钮在文本后面绘制。
答案 0 :(得分:0)
如果您想将TextView用作按钮,只需将onClickListener添加到视图中。
如果您想设计它,那么我将使用“onTouchListener”更改为背景颜色ontouch事件。
答案 1 :(得分:0)
我不会打扰TextView子类,而是直接使用Button。你可以style them的方式。
如果您需要执行Button无法执行的操作,请创建自定义视图并将所有内容绘制到Canvas中。