设置一个drawText对象可见和不可见的android

时间:2014-02-11 13:07:27

标签: java android canvas ontouchevent

我想只需点击一下就可以设置一个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;

我的问题是,它不起作用。我不知道我应该如何使它除了我迄今为止所做的工作。

2 个答案:

答案 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