我想只需点击一下就可以设置一个drawText对象可见和不可见。它将以隐形开始,但当用户点击屏幕上的任何位置时,对象将出现,反之亦然,再次点击后对象将再次不可见。
这是我的代码
public void onDraw(Canvas canvas) {
if (GetterSetter.isVisible) {
renderText(canvas);
}
}
private void renderText(Canvas canvas) {
Paint textPaint = new Paint();
textPaint.setTextSize(18);
textPaint.setAntiAlias(true);
textPaint.setARGB(0xff, 0x00, 0x00, 0x00);
canvas.drawText(GetterSetter.currLoc, 16, 50, textPaint);
}
这是我的onTouchEvent
@Override
public boolean onTouchEvent(MotionEvent e) {
x = e.getX();
y = e.getY();
switch (e.getAction()) {
case MotionEvent.ACTION_MOVE:
if (GetterSetter.counter < 1) {
GetterSetter.counter++;
GetterSetter.isVisible = true;
} else {
GetterSetter.counter = 0;
GetterSetter.isVisible = false;
}
break;
}
return true;
}
这是我的常量:GetterSetter.java
public static String currLoc = "Hello World";
public static boolean isVisible = false;
public static int counter = 0;
我的问题是,它不起作用。我不知道我应该如何使它除了我迄今为止所做的工作。
答案 0 :(得分:1)
只要使用如果它不可见的事实,将其设置为可见,反之亦然。并且不要对isVisible使用static
声明,因为你想要改变它。
case MotionEvent.ACTION_MOVE:
if (!GetterSetter.isVisible) {
GetterSetter.isVisible = true;
} else {
GetterSetter.isVisible = false;
}
break;
答案 1 :(得分:1)
通过调用View
更改isVisible
值的值,让invalidate()
绘制内容...并且当您想要监听点击事件时,请使用{{1 }而不是ACTION_UP
...
ACTION_MOVE