新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Android 的 SurfaceView 雙緩沖應(yīng)用

Android 的 SurfaceView 雙緩沖應(yīng)用

作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

075 int index = 0;

本文引用地址:http://butianyuan.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);// 更新屏幕顯示內(nèi)容

128 }

129 }

130 };

131

132 /**

133 * 只負責(zé)繪圖的線程

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);// 更新屏幕顯示內(nèi)容

152 }

153 }

154 }

155 };

156

157 /**

158 * 只負責(zé)讀取圖片的線程

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}


上一頁 1 2 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉