雙緩沖 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.pswp.cn/news/257918.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257918.shtml
英文地址,請注明出處:http://en.pswp.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…