use*_*442 4 android canvas ondraw
这是我的OnDraw()方法
void onDraw(Canvas canvas) {
mCanvas = canvas;
//invalidate();
int x = 0;
Iterator<Letter> it = mNextUpQueue.iterator();
while(it.hasNext()){
mCanvas.drawBitmap(it.next().getNext(), mNextUpCoordinates.get(x).x, mNextUpCoordinates.get(x).y, mPaint);
mCanvas.drawBitmap(mAvailableLetters.get(x).getNotPressed(), mAvailableLettersCoordinates.get(x).x, mAvailableLettersCoordinates.get(x).y, mPaint);
x++;
}
}
Run Code Online (Sandbox Code Playgroud)
我已将canvas设置为全局变量mCanvas.但是,如果我尝试从onDraw()方法外部绘制mCanvas,我会收到错误.是因为我做错了什么还是必须始终在onDraw方法中使用画布?
小智 7
您不能对传递的Canvas进行引用,因为它仅在onDraw(Canvas)方法调用期间有效.
我建议彻底阅读http://developer.android.com/guide/topics/graphics/2d-graphics.html#draw-with-canvas,可能的解释方法很好:
onDraw(Canvas)方法提供的Canvas ,在此方法调用期间.这是在UI线程中完成的,因此这里不应该尝试任何复杂的操作onDraw(Canvas)方法的Canvas非常有用lockCanvas()方法从中获取Canvas对象.| 归档时间: |
|
| 查看次数: |
3262 次 |
| 最近记录: |