[英]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.