使光标在自定义视图中闪烁

时间:2014-08-21 14:18:50

标签: android animation view cursor

在我正在开发的应用中,我有自己的自定义视图。在这个视图中,我使用View的onDraw()方法中的canvas.drawRect()绘制一个光标。这很好但是事情就是这样:我希望光标像大多数光标一样闪烁。如果是图像或某种视图,我可以使用AlphaAnimation轻松完成此操作并将重复计数设置为无限。然而,这不会起作用,因为我使用canvas.drawRect()来绘制光标,所以我的问题是:我如何定期使光标以优雅和简单的方式出现和消失?

修改

使用黑带的输入我创建了以下runnable来进行动画:

// Cursor blink animation
private Runnable cursorAnimation = new Runnable() {
    public void run() {
        // Switch the cursor visibility and set it
        int newAlpha = (mCursorPaint.getAlpha() == 0) ? 255 : 0;
        mCursorPaint.setAlpha(newAlpha);
        // Call onDraw() to draw the cursor with the new Paint
        invalidate();
        // Wait 500 milliseconds before calling self again
        postDelayed(cursorAnimation, 500);
    }
};

在View的构造函数中,我调用post(cursorAnimation)启动它。

1 个答案:

答案 0 :(得分:1)

drawRect的最后一个参数是Paint个对象。您可以通过它更改矩形alpha。您还可以使用View.postDelayed来决定如何更改Alpha值并使视图无效。