- 注册时间
- 2005-8-25
- 最后登录
- 1970-1-1
|
发表于 2011-3-12 18:46:58
|
显示全部楼层
趁2位都在,问个问题。我新开了一个线程来处理android的绘图工作,取代原来的onpaint- public void run() {
- while(true)
- {
- if(mNeedChange==true)
- {
- //mScreen.screenChanged(mScreenModel, mArea);
- Canvas c = null;
- Paint paint =new Paint();
- SurfaceHolder holder = getHolder();
- try {
- mNeedChange=false;
- paint.setAlpha(100);
- c = holder.lockCanvas(null);
- mScreen.refresh(c, mArea);
- }
- catch (Exception ex) {
- android.util.Log.e("MainView", ex.toString());
- }
- finally{
- if (c != null) {
- holder.unlockCanvasAndPost(c);
- }
- }
- }
- }
- }
- }
复制代码 响应screenChanged时 只是置下更新标志,这样在模拟器上明显感觉到性能的提升,我想问下ScreenModel 中获得buffer是否总是160*80的图,
如果时为什么我将mScreen.screenChanged(mScreenModel, mArea)也放在整个进程中(当然这样是错误的,因为和WorkerThread不同步,会
漏掉很多帧)时 会出现这样的效果?
现在就是还会有闪烁,java和android 都不会,2位给点建议。
还有这情况,下面没有了?
[ 本帖最后由 waiting 于 2011-3-13 13:19 编辑 ] |
|