当前位置:编程学习 > wap >>

android surfaceHolder 画图

我现在有几个问题, 我先把代码贴一点出来

 class DrawThread implements Runnable{

@Override
public void run() {
mCanvas = mHolder.lockCanvas();
mPaint = new Paint();
mPaint.setAntiAlias(true); // 反锯齿
mCanvas.drawBitmap(getThumbnail(), 0, 20, mPaint);
mHolder.unlockCanvasAndPost(mCanvas);//解锁画布,提交画好的图像
}
//获取视频文件缩略图
public Bitmap getThumbnail(){
if(mBitmap == null){
File file = new File(Environment.getExternalStorageDirectory(),
"oppo_demo.mp4");
String path = file.getAbsolutePath();
Bitmap bit = ThumbnailUtils.createVideoThumbnail(
path,Video.Thumbnails.MINI_KIND);
Bitmap bitmap = ThumbnailUtils.extractThumbnail(bit, 180, 125);
mBitmap = bitmap;
}
return mBitmap;
}
    
    }

    /**
     * 清除画图
     */
    public void clearDraw() {  
     mCanvas = mHolder.lockCanvas();
        mCanvas.drawColor(Color.BLACK);// 清除画布  
        mHolder.unlockCanvasAndPost(mCanvas);
    }

 我的surfaceHolder主要是用来播放视频, 在callback中启动线程将缩略图画在surfaceHolder上,点击播放的时候清除画图,将canvas画成黑色。 然后播放视频,  这些都没问题
 主要出现的问题就是, 我想在视频播放完之后的监听接口里实现当视频播放完之后重新将该视频的缩略图画在surfaceholder上,也就是重新启动线程。 当进行到这一步的时候 mCanvas = mHolder.lockCanvas(); 这句代码会得不到canvas对象。  以下是错误LOG


或者有什么其他方法能实现我这种功能吗 ? Android Canvas --------------------编程问答--------------------  补充一下log
--------------------编程问答--------------------    顶一下 , 别沉了啊
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,