SurfaceView设置背景后的无法绘图的解决方案
来源:互联网 发布:.net域名崛起 编辑:程序博客网 时间:2024/06/05 19:59
原本只是想给surfaceview添加一个背景图,在xml属性里set了 android:backgrand 属性后,surfaceview的绘图失效了(其实是被覆盖了)。
网上的普遍解决方案是
- sfv.setZOrderOnTop(true); // 这句不能少
- sfv.getHolder().setFormat(PixelFormat.TRANSPARENT);
虽然能解决问题,但是同时也衍生了新的问题。surfaceview会置于最顶层,采取framelayout布局且与surfaceview处于同一个区域的组件会被遮挡掉。
经过试验,surfaceview第一次被创建时,在回调方法中对其设置背景,可以完全达成目的。示例代码片段如下:
//surface回调surfaceHolder.addCallback(new SurfaceHolder.Callback() {@Overridepublic void surfaceCreated(SurfaceHolder holder) { Canvas canvas = surfaceHolder.lockCanvas();canvas.drawColor(Color.WHITE);surfaceHolder.unlockCanvasAndPost(canvas);}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) { timerTask.cancel(); timerTask = null;}});
1 0
- SurfaceView设置背景后的无法绘图的解决方案
- SurfaceView设置背景透明
- 设置SurfaceView 背景颜色
- 设置SurfaceView背景透明
- WebView背景无法透明的设置方法
- 设置popupwindow弹出后的背景颜色
- Android的SurfaceView绘图并移动
- Android的SurfaceView绘图并移动
- SurfaceView——重要的绘图组建
- 自定义的绘图线程和逻辑线程,SurfaceView的绘图
- 对话框绘图的背景擦除
- 路由器LAN设置被更改后无法通过192.168.1.1连接的解决方案
- android开发之设置继承自SurfaceView的类的背景为透明
- 关于surfaceview画背景格的几个问题
- 设置SurfaceView 背景为透明
- SurfaceView背景设置为透明
- SurfaceView类透明背景设置
- SurfaceView中设置背景透明
- 使用JavaScript进行进制转换
- 今天去搜外论坛看见了这篇很好的文章,朋友们可以读读
- 设计模式 - 状态模式 C++
- C/C++ 日常学习总结(第二十一篇)智能指针shared_ptr
- Backbone.js入门学习资源
- SurfaceView设置背景后的无法绘图的解决方案
- 测试的方方面面
- 黑马程序员——Java基础——其他对象(Math-Random)
- setting 表字段含义
- 职业目标
- ASIHTTPRequest类库的部分官方文档翻译
- seo失败 三大元凶,来看看你是不是也中枪了
- 网站注册有关手机发送验证码并具有时效性的问题
- 黑马程序员——Java 键盘输入