[英]setting a drawText object visible and invisible android
我想只需点击一下就可以设置一个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;
我的问题是,它不起作用。 我不知道我应该如何使它除了我迄今为止所做的工作。
只要使用如果它不可见的事实,将其设置为可见,反之亦然。 并且不要对isVisible使用static
声明,因为您想要更改它。
case MotionEvent.ACTION_MOVE:
if (!GetterSetter.isVisible) {
GetterSetter.isVisible = true;
} else {
GetterSetter.isVisible = false;
}
break;
当您通过调用invalidate()
更改isVisible
值的值时,使View
绘制内容...并且当您想要侦听tap事件时,请使用ACTION_UP
事件而不是ACTION_MOVE
...
public boolean onTouchEvent(MotionEvent e) {
x = e.getX();
y = e.getY();
switch (e.getAction()) {
case MotionEvent.ACTION_UP:
GetterSetter.isVisible = !GetterSetter.isVisible;
invalidate();
break;
}
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.