在我正在开发的应用中,我有自己的自定义视图。在这个视图中,我使用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)
启动它。
答案 0 :(得分:1)
drawRect
的最后一个参数是Paint
个对象。您可以通过它更改矩形alpha。您还可以使用View.postDelayed
来决定如何更改Alpha值并使视图无效。