簡體   English   中英

設置一個drawText對象可見和不可見的android

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM