我有课
public class OwnKeyboardView extends KeyboardView {
...
}
它有覆盖方法OnDraw:
@Override
public void onDraw(final Canvas canvas) {
super.onDraw(canvas);
mCanvas = draw_bitmap(canvas);
Draw_Bitmap(mCanvas);
}
类KeyboardView继承方法
来自类android.view.View
来自java.lang.Object类
来自界面android.graphics.drawable.Drawable.Callback
方法OnDraw按任意键工作。
当我做下一个时:
public Canvas draw_bitmap(Canvas canvas) {
if (mCanvas != null) {
Log.i(TAG, "Copy Canvas");
}
return canvas;
}
为什么在方法 OnDraw 我可以用 mCanvas 绘制,但其他的不可以?我想在键盘上进行循环绘图,但OnDraw仅在您按键盘上时才能工作
答案 0 :(得分:1)
Yoy可以创建Thread并在Thread中手动调用postInvalidate,就像这样。
注意:它会耗尽电池
boolean flag=true;
private void Thread_Draw(){
new Thread(new Runnable(){
public void run(){
while(flag)
{
postInvalidate();
try{
Thread.sleep(45);
} catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
}
}
从方法
停止线程public void stopThread(boolean bool)
{
flag=bool;
}
了解PostInvalidate yom可以:http://developer.android.com/reference/android/view/View.html#postInvalidate()