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}

双缓冲 android,Android 的 SurfaceView 双缓冲应用相关推荐

  1. android缓冲机制,Android自定义View之双缓冲机制和SurfaceView

    Android自定义View系列 双缓冲机制 问题的由来 CPU访问内存的速度要远远快于访问屏幕的速度.如果需要绘制大量复杂的图像时,每次都一个个从内存中读取图形然后绘制到屏幕就会造成多次地访问屏幕, ...

  2. android双屏不同apk,android rk3288 rk3399 双屏双触 双屏异显 验证apk

    [实例简介] android rk3288 rk3399 双屏双触 双屏异显 验证apk,android rk3288 rk3399 双屏双触 双屏异显 验证apk,android rk3288 rk ...

  3. android声音播放函数双声道合并,Android音视频系列(七):PCM音频单声道与双声道的相互转换...

    前言 上一篇我们已经学习了PCM音频的保存格式,这一篇我们通过掌握的知识,完成PCM音频的单声道和双声道的互相转换. 正文 首先我们把上一篇的最核心部分贴出来: PCM音频保存格式 我们首先完成单声道 ...

  4. Android中的SurfaceView详解

    Android中提供了View进行绘图处理,View可以满足大部分的绘图需求,但是有时候,View却显得力不从心,所以Android提供了SurfaceView给Android开发者,以满足更多的绘图 ...

  5. android surface编程,Android编程之SurfaceView实例详解

    本文实例讲述了Android编程之SurfaceView用法.分享给大家供大家参考,具体如下: 关于surfaceView相关知识: View和SurfaceView主要区别: 1. View只能在U ...

  6. [转]Android中在SurfaceView上高效绘图

    本文转自:http://hi.baidu.com/fqlibra/blog/item/0216d603876345c07b89478c.html Android的大多数控件都是继承自View的,因此在 ...

  7. Android中在SurfaceView上高效绘图

    Android的大多数控件都是继承自View的,因此在自定义控件时一般也是继承View类,但是对于高效的,游戏级别的绘图,或者是播放器等要求比较高的地方,普通的View类就 有点吃不开了,这个时候就要 ...

  8. Android开发使用SurfaceView和Mediaplayer播放网络视频(功能齐全)

    本篇播客主要说明如何使用SurfaceView和Mediaplayer来播放网络视频. 支持视频格式:实测支持的有mp3.mp4.rmvb.avi.3gp.flv--. 带有功能:播放.暂停.视频拖动 ...

  9. android之利用surfaceView实现自定义水印相机

    android之利用surfaceView实现自定义水印相机 知识点 1.自定义相机+预览相机 2.截屏拍照加水印 3.关于不使用intent来传输图片 4.关于大家说要demo的,因为这里是项目里头 ...

  10. Android截屏SurfaceView黑屏问题解决办法

    Android截屏SurfaceView黑屏问题解决办法 参考文章: (1)Android截屏SurfaceView黑屏问题解决办法 (2)https://www.cnblogs.com/kongyf ...

最新文章

  1. 17综合案例之淘宝轮播图布局
  2. 索引键的唯一性(2/4):唯一与非唯一聚集索引
  3. HTTP中response响应数据获取
  4. 硬盘物理序列号修改工具_精品软件:MHDD磁盘坏道扫描工具使用方法图解教程...
  5. 【Centos 8】【Centos 7】安装 docker
  6. 2018年最好用的20个Bootstrap网站模板
  7. WP黑格导航主题BlackCan 焕然一新的UI设计
  8. powershell 停止正在运行的用户应用
  9. 从零开始搭建一个测试技术练习平台
  10. 计算机装配调试员培训内容.doc,电子计算机(微机)装配调试员文档.doc
  11. Markdown对图片进行缩放
  12. Android知识点深究
  13. windowns 程序图标变白色
  14. 标准的html 样式,CSS 样式表代码规则
  15. 阿里云ACA、ACP和ACE认证考试有什么区别?考生应该如何选择?-阿里云开发者社区
  16. UBUNTU系统设置窗口打不开解决办法(精)
  17. 如何在pdf文件上进行电子签名
  18. 使用mybatis进行四表联查
  19. 极大似然函数求解_从最大似然函数 到 EM算法详解
  20. html后退按钮样式,返回按钮主题样式 | JShare

热门文章

  1. 小朋友学C++(1)
  2. Devexpress xaf针对某个用户登录后在面板中设置导航无效的解决方法
  3. UWP 响应键盘组合快捷键
  4. Oracle中主键自增长
  5. js中怎么写自执行函数
  6. 交叉工具链的搭建方法(测试成功)
  7. LeetCodeOJ. String to Integer (atoi)
  8. Android笔记(六十七) 自定义控件
  9. 深入信号和槽(Signals and Slots in Depth)
  10. 跨语言RPC框架Thrift详解