双缓冲 android,Android 的 SurfaceView 双缓冲应用

075 int index = 0;本文引用地址:http://www.eepw.com.cn/article/201610/305442.htm

076 try {

077 index = field.getInt(R.drawable.class);

078 } catch (IllegalArgumentException e) {

079 // TODO Auto-generated catch block

080 e.printStackTrace();

081 } catch (IllegalAccessException e) {

082 // TODO Auto-generated catch block

083 e.printStackTrace();

084 }

085 // 保存图片ID

086 imgList.add(index);

087 }

088 }

089 // 取得图像大小

090 Bitmap bmImg = BitmapFactory.decodeResource(getResources(),

091 imgList.get(0));

092 imgWidth = bmImg.getWidth();

093 imgHeight = bmImg.getHeight();

094 }

095

096 @Override

097 public void surfaceDestroyed(SurfaceHolder holder) {

098 Log.i(Surface:, Destroy);

099

100 }

101

102 }

103

104 /**

105 * 读取并显示图片的线程

106 */

107 class Load_DrawImage extends Thread {

108 int x, y;

109 int imgIndex = 0;

110

111 public Load_DrawImage(int x, int y) {

112 this.x = x;

113 this.y = y;

114 }

115

116 public void run() {

117 while (true) {

118 Canvas c = sfh.lockCanvas(new Rect(this.x, this.y, this.x

119 + imgWidth, this.y + imgHeight));

120 Bitmap bmImg = BitmapFactory.decodeResource(getResources(),

121 imgList.get(imgIndex));

122 c.drawBitmap(bmImg, this.x, this.y, new Paint());

123 imgIndex++;

124 if (imgIndex == imgList.size())

125 imgIndex = 0;

126

127 sfh.unlockCanvasAndPost(c);// 更新屏幕显示内容

128 }

129 }

130 };

131

132 /**

133 * 只负责绘图的线程

134 */

135 class DrawImage extends Thread {

136 int x, y;

137

138 public DrawImage(int x, int y) {

139 this.x = x;

140 this.y = y;

141 }

142

143 public void run() {

144 while (true) {

145 if (bitmap != null) {//如果图像有效

146 Canvas c = sfh.lockCanvas(new Rect(this.x, this.y, this.x

147 + imgWidth, this.y + imgHeight));

148

149 c.drawBitmap(bitmap, this.x, this.y, new Paint());

150

151 sfh.unlockCanvasAndPost(c);// 更新屏幕显示内容

152 }

153 }

154 }

155 };

156

157 /**

158 * 只负责读取图片的线程

159 */

160 class LoadImage extends Thread {

161 int imgIndex = 0;

162

163 public void run() {

164 while (true) {

165 bitmap = BitmapFactory.decodeResource(getResources(),

166 imgList.get(imgIndex));

167 imgIndex++;

168 if (imgIndex == imgList.size())//如果到尽头则重新读取

169 imgIndex = 0;

170 }

171 }

172 };

173}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows—JDK安装与环境变量配置

本文介绍JDK的安装与环境变量配置。 工具/原料 JDK1.8.0_65WIN7 32bitjdk-8u65-windows-i586.exe方法/步骤 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。&…

典型案例道出“服务台”的价值

引 言:作为运营管理着庞大IT系统的CIO,相信您或多或少都尝试过,或正建有IT服务台(或帮助台),然而您可能依然面临服务效率低下,用户满意度欠佳的 困扰。这其中的原因,多半就在于您的服…

数据的艺术

数据的艺术概念:数据 --程序操作的对象,用于描述客观事物。数据的特点:a. 可以输入到计算机b. 可以被计算机程序处理*数据是一个抽象的概念,将其进行分类得到程序设计语言中的类型。数据元素 -组成数据的基本单位a. 数据项:一个数据元素由若干数据项组成…

处理ajax的session超时

做web开发时,当session超时时,如果不是ajax请求,很简单就能实现跳到指定的页面。但是ajax请求就会有问题。session超时的时候,点击到ajax请求就会弹出一些页面源码文件。 首先建了个拦截器,来判断session超时。用户登录…

菜根谭#249

色欲火炽,而一念及病时便兴似寒灰; 名利饴甘,而一想到死地便味如嚼蜡。 故人常忧死虑病,亦可消幻业而长道心。转载于:https://www.cnblogs.com/star4knight/p/4154590.html

实现物联网项目,你需要提前知道的6件事情

目前为止,对于大多数寻求数字化与服务化转型的制造商来说,实现物联网应用项目仍然是一个很大的挑战。 我们此前做过一项研究,到2016年底,全球企业级物联网项目将超过10000个。但是其中大部分的项目都还是处于初期概念验证(PoC)阶段&#xff0…

android脚本快捷方式,Android:如何创建主屏幕快捷方式启动shell脚本?

答案:您的问题的答案应该是GScript(开放源代码和“根除设备上的任何地方”),但是当脚本完成时,谁想要盯着该模态终端输出屏幕?详情如下.> SManager (free version)将让您将自定义脚本存储在设备的任何位置,即使您使用根设备的内部存储也是如此.它将允…

读书 文摘 笔记

凤凰项目: 一个IT运维的传奇故事 微信商城开发实战 跨境电商多平台运营 活出生命的意义 托马斯阿尔瓦爱迪生 奇迹的一生 阿尔伯特爱因斯坦 固执 自信 专利局 我的世界观 爱因斯坦 艾萨克牛顿 母亲让牛顿停学在家务农,赡养家庭。但牛顿一有机会便埋首书卷&#…

修改Visual Stdio 2010界面,以及添加一些其它VS2010的插件

打开 Tools\Extension Manager(工具\扩展管理器)。 点联机库。 搜索“visual studio color theme editor”,就能看到一个名为“visual studio color theme editor”的扩展, 下载安装好这个扩展,重新启动 Visual Studio…

【NOIP2013】货车运输

Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。 Input…

杀死应用进程 android,如何杀死Android应用程序启动的logcat进程?

我有Android应用程序,在Service启动实现后面跟着代码:...Process process Runtime.getRuntime().exec("logcat -v time -s " arg);BufferedReader bufferedReader new BufferedReader(new InputStreamReader(process.getInputStream()));...如您所见,我…

Android笔记(六十七) 自定义控件

实际编程中,系统提供的控件往往无法满足我们的需求,一来是样子丑陋,二来是一些复杂的组合需要多次使用的话,每次都写一堆控件的组合会很耗费时间,所以我们将这些组件的组合自定义为一个新的控件,以后使用的…

android 7.0原生room,小米5S 安卓9.0 原生体验 LineageOS16.0 ROOT

介绍ROM为第三方编译安卓9.0 LineageOS16.0 ,基本功能正常,如有其他bug,理性对待使用Magisk ROOT授权刷机完成后请务必到设置中手动设置当前系统时间和时区去网络图标上面的感叹号和x号方法:打开CaptiveMgr软件--自动弹出授权弹窗…

图---互斥集

互斥集主要用于Kruskal算法中,用于求图的最小生成树。 互斥集主要有3个基本操作: 1. 初始化各个集合 Make(a)p[a] ← a 2. 查找各个集合的老祖宗 Find(a)if a p[a] : return aelse : return Find(p[a]) 3. 合并两个集合 Union(a, b)p[Find(b)]…

Oracle配置监听要注意的地方

昨天心血来潮,把Oracle的监听都删了,准备重新配一遍,结果弄了一天才配好,不过对Oracle的了解更深了一些。 对昨天的问题做一个总结: 1、直接在NetManager中删掉监听时,实际的监听服务好像并没有完全删除&am…

signature=486e34400687432217e65e837b8e6753,PXE常见错误代码表

在我们日常做无盘时,通常都会遇到一些这样或那样的问题,不过好在一般这些错误都会有些错误代码,我们可以通过错误代码查询到一些有帮助的信息。下面是我转载的一些PXE驱动错误代码表,遇到PXE错误时,可查询下看看&#…

12月25号 Category类别

Category类别 1.在已有类的基础上进行扩展,无需像继承一样子类化,就可以直接添加一些方法 2.继承不仅可以添加方法还可以添加属性,类别只能添加方法 3.类别不会改变现有类的方法,万一重写,自己写的优先级高 4.把类别中…

17---Net基础加强

更新中,敬请期待。。。。。。。。。。。。 复习 将xml显示到treeview 修改增加 删除 foreach原理 深拷贝与浅拷贝 模拟数据库及登陆 复习总结转载于:https://www.cnblogs.com/yechangzhong-826217795/p/4157562.html

Linux系统rootpassword改动

重新启动系统。 进入系统引导界面: 按下e键: 选择第二项。内核启动參数设置,按下e键: 在结尾处,输入数字 1或者 英文 " single",再回车: 按下b键启动。此时以单用户模式级别引导启动程…

关于OC-省市区习题

对于省市区的问题,关键在于搞清楚数组嵌套字典,字典里面装数组的多重嵌套关系,沉下心来,捋清楚思路, 实在看不懂就多打几遍,这道题理解了,熟练了对之后学习很有好处。 代码如下: NSS…