繁体   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