surfaceView
来源:互联网 发布:弄璋乎弄瓦乎 编辑:程序博客网 时间:2024/06/05 21:17
surfaceView:
surface:表层,surfaceView表示的是表层的view对象,官方的文档解释为surfaceview
是在Window表面挖了个洞,surfaceview就显示在这个洞里,正常的view是显示在window上的。这几说明你可以在surfaceview纸上添加一些层(控件),类似Framelayout。
正常的view跟新和重绘需要调用view的invalidate方法吗,这个更新只能在UI线程中使用,surfaceview很好的地方就是允许其他线程绘制图形(使用canvas),根据这个特性,就可以控制绘制帧数,
surfaceview是一个view,有自己的生命周期,他需要另外一个线程去进行绘制操作,这个
线程在surfaceview中使用的是surfaceholder,surfaceholder需要在surfaceview初始化阶段开启自己的线程,surfaceholder保持一个surfaceview的引用,使用surfaceholder来操作surfaceview的生命周期,
下面代码就是自己的surfaceview,
package view;
import android.content.Context;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
/**
* Created by songtao on 2016/11/30.
*/
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback{
public MySurfaceView(Context context) {
super(context);
initdata();
}
private void initdata() { SurfaceHolder holder = getHolder(); holder.addCallback(this);}@Overridepublic void surfaceCreated(SurfaceHolder surfaceHolder) {}@Overridepublic void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {}@Overridepublic void surfaceDestroyed(SurfaceHolder surfaceHolder) {}
}
这个类中在surfaceview初始化的时候获得surfaceview中的surfaceholder对象,根据他设置
surfaceview的回调, surfaceCreated方法吗,当surfaceview被显示时调用,所以需要在这里面开启绘制线程,surfaceDestroyed方法销毁或隐藏surfaceview时调用的方法,这里可以关闭绘制的线程,
- surfaceview
- SurfaceView
- surfaceview
- surfaceview
- SurfaceView
- SurfaceView
- SurfaceView
- SurfaceView
- SurfaceView
- SurfaceView
- SurfaceView
- surfaceview
- SurfaceView
- SurfaceView
- SurfaceView
- surfaceview
- surfaceview
- SurfaceView
- windows Linux下Java程序的启动Shell脚本
- MySQL 主从复制 + MySQL Router 部署测试
- 解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
- 怎么用U3D画 平滑曲线(贝塞尔曲线)
- Windows共享权限和相关管理
- surfaceView
- 360浏览器 parseInt 问题
- 软件注册的实现 delphi 源码
- 获取android手机当前网络链接IP的方法
- 大亚基和小亚基
- 第三届省赛题 BUYING FEED
- 视频编解码:
- Tesseract-OCR 字符识别技术
- java 发送post,get请求及空格问题处理