Raj*_*esh 11 android canvas surfaceholder live-wallpaper
public void render(){
Canvas canvas = null;
try{
canvas = this._surfaceHolder.lockCanvas(null);
synchronized (this._surfaceHolder) {
this.onDraw(canvas);
}
}catch(Exception e){ Log.w("Surface holder ", e.toString());}
finally{
if(canvas != null){
this._surfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
protected void onDraw(Canvas canvas) {
this.renderBackGround(canvas);
for (Renderable renderable : this._fishes) {
renderable.render(canvas);
}
};
Run Code Online (Sandbox Code Playgroud)
06-07 19:49:09.143:E/SurfaceTextureClient(13629):queueBuffer:错误排队缓冲区到SurfaceTexture,-19
06-07 19:49:09.143:E/SurfaceTextureClient(13629):queueBuffer(handle = 0x1c1b30)失败(没有这样的设备)06-07 19:49:09.143:W/dalvikvm(13629):threadid = 11:线程退出with uncaught exception(group = 0x40c671f8)06-07 19:49:09.143:E/AndroidRuntime(13629):FATAL EXCEPTION:Thread-692
06-07 19:49:09.143:E/AndroidRuntime(13629):java.lang.IllegalArgumentException
06-07 19:49:09.143:E/AndroidRuntime(13629):在android.view.Surface.unlockCanvasAndPost(Native Method)
06-07 19:49:09.143:E/AndroidRuntime(13629):at com.android.internal.view.BaseSurfaceHolder.unlockCanvasAndPost(BaseSurfaceHolder.java:215)
提前致谢
当您在动态壁纸选择器中旋转设备时,通常会发生这种情况。我找到的唯一解决方案是捕获 IllegalArgumentException 并忽略它。
if (canvas != null) {
try {
holder.unlockCanvasAndPost(canvas);
} catch (IllegalArgumentException e) {
// Ignore weird bug when rotating in live wallpaper picker
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5646 次 |
| 最近记录: |