1. 程式人生 > >Android多媒體分析(二)MediaStore

Android多媒體分析(二)MediaStore

1 publicclass MainActivity extends Activity { 2 private ImageView image; 3 private Button btn; 4 privateint index; 5 privateint totalCount; 6 private ArrayList<String> imageSrcs =new ArrayList<String>(); 7 @Override 8 publicvoid onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.main); 11 12 image = (ImageView)findViewById(R.id.image); 13 btn = (Button)findViewById(R.id.btn); 14 15 //獲取上下文16 Context ctx = MainActivity.this; 17 //獲取ContentResolver物件18 ContentResolver resolver = ctx.getContentResolver(); 19 //獲得外部儲存卡上的圖片縮圖
20 Cursor c = resolver.query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, null, null, null, null); 21 //為了for迴圈效能優化,用一變數儲存資料條數22 totalCount = c.getCount(); 23 24 //將Cursor移動到第一位25 c.moveToFirst(); 26 //將縮圖資料新增到ArrayList中27 for(int i=0; i<totalCount; i++){ 28 int index = c.getColumnIndexOrThrow(MediaStore.Images.Thumbnails.DATA);
29 String src = c.getString(index); 30 imageSrcs.add(src); 31 index = i; 32 c.moveToNext(); 33 } 34 //關閉遊標35 c.close(); 36 37 //點選按鈕,切換圖片38 btn.setOnClickListener(new OnClickListener(){ 39 @Override 40 publicvoid onClick(View v) { 41 String src = imageSrcs.get(index); 42 image.setImageURI(Uri.parse(src)); 43 index ++; 44 if(index == totalCount){ 45 index =0; 46 } 47 } 48 }); 49 } 50 }

相關推薦

Android多媒體分析MediaStore

1 publicclass MainActivity extends Activity { 2 private ImageView image; 3 private Button btn; 4 privateint index; 5 privateint totalCount; 6 private

Android多媒體分析MediaScanner

Android平臺上的媒體檔案管理和桌面系統不同。在桌面系統上,不同目錄下的媒體檔案呈樹狀結構顯示給使用者,使用者需要進入不同目錄尋找該目錄下的檔案。而在Android平臺上,不同目錄下的媒體檔案

android fsck_msdos 分析:目錄項

其實寫完前面的關於FAT檔案系統的簇檢查那一部分之後,我一直沒準備寫第二部分關於檔案目錄項處理這一部分,因為這部分都是按照FAT規範來處理的。 handleDirTree(int dosfs, struct bootblock *boot, struct fatEnt

Android跨程序通訊Binder原理分析

文章目錄 1 Binder原始碼分析 1.1 Service的註冊流程 1.2 Service的獲取流程 1.3 Service的使用流程 1 Binder原始碼分析 1.1 Service的註冊流程  

android展訊平臺 重啟案例分析

./0000.log  watchdog重啟 01-02 02:01:02.458   551  1010 W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor com.android.s

Android Hanlder機制分析 HandThread Handler.Obtain

(一)建立looper執行緒的方法比較 在上一篇中,講到了在UI執行緒中Handler的原理及使用。如果我們需要在自己的子執行緒中建立Handler就需要自己為子執行緒繫結looper了。如下: private MyHandlerTread mHand

Android平臺藍芽程式設計之藍芽聊天分析

接著上一篇沒有完成的任務,我們繼續分析這個藍芽聊天程式的實現,本文主要包括以下兩個部分的內容:其一,分析掃描裝置部分DeviceListActivity,其二,分析具體的聊天過程的完整通訊方案,包括埠監聽、連結配對、訊息傳送和接收等,如果有對上一篇文章不太熟悉的,可以返回

Android架構分析Android智慧指標

作者:劉昊昱  Android版本:4.4.2 在上一篇文章中,我們分析了Android智慧指標中的強指標sp,本文我們來分析弱指標wp。為什麼需要弱指標wp呢?我們來考慮下面一種場景:有兩個類CParent和CChild,CParent類中有一個智慧指標指向CChil

Android 呼吸燈流程分析

一、Android呼吸燈Driver實現       1、註冊驅動       程式碼位置:mediatek/kernel/drivers/leds/leds_drv.c 602static struct platform_driver mt65xx_leds_drive

WebRTC-Android 原始碼導讀:預覽實現分析

在本系列第一篇中,我們分析了 WebRTC-Android 相機採集的實現,本文中我們將分析預覽的實現。有過一定相機開發經驗的朋友可能會疑惑,預覽還有什麼好分析的,不是直接 camera.setPreviewDisplay 或者 camera.setPreviewTextur

Android OTA升級原理和流程分析---update.zip差分包問題的解決

Android OTA升級原理和流程分析(二)—update.zip差分包問題的解決 在上一篇末尾提到的生成差分包時出現的問題,現已解決,由於最近比較忙,相隔的時間也比較長,所以單列一個篇幅提示大家。這個問題居然是原始碼中的問題,可能你已經制作成功了,不過我的

linux設備驅動之misc驅動框架源碼分析

linux驅動開發misc設備驅動1、misc_open函數分析 該函數在driver/char/misc.c中,misc.c是驅動框架實現的,這裏面的misc_Open函數是misc驅動框架為應用層提供的一個打開misc設備的一個接口。 1、首先我們要知道在misc.c中的misc_init函數

【雷電】源代碼分析-- 進入遊戲攻擊

engine 場景 aud 初始 cto onf 不變 addchild ems 效果圖: 程序分析: 初始化GameLayer場景觸摸。背景、音樂、UI及定時間器 bool GameLayer::init() { if (!CCLayer::init())

android事件分發

sim tdi p s oat front rac ram addclass framework 非常早之前寫過一篇android事件分發的博客,主要寫的是它是怎樣分發的,具體非常多原理的東西都沒有涉及到。今天就從源代碼看android怎樣控制它的分發機

vlc源碼分析 播放流程

.net ges bmp pre https 學習 ref lock 流媒體 http://www.cnblogs.com/jiayayao/p/6752388.html   當點擊播放文件或者輸入要播放的文件後,vlc會執行一系列的流程。   首先需要了解視頻以及流媒體處

java代碼實現highchart與數據庫數據結合完整案例分析---折線圖

end idt 。。 客戶端 屬性 hid pla 循環 scrip 作者原創:未經博主允許不許轉載 在上一篇的博客中,展示和分析了如何做一個餅狀圖,有疑問可以參考上一篇博客。 現在分析和展示折線圖的繪制和案例分析, 先展示效果圖: 與餅狀圖不同的是,折線圖展現更多的數據

使用Apriori進行關聯分析

lis 過程 pre alt lock 不一定 根據 返回 req   書接上文(使用Apriori進行關聯分析(一)),介紹如何挖掘關聯規則。 發現關聯規則   我們的目標是通過頻繁項集挖掘到隱藏的關聯規則,換句話說就是關聯規則。   所謂關聯規則,指通過某個元素集推導出

python的引用計數分析

裏的 %20 賦值 手動 計數 python 作用域 新的 pri python所有對象引用計數被減少1的情況: 一.對象的別名被賦予新的對象; a = 23345455 # 增加了一個引用 b = a # 增加了一個引用 print(sys.getrefcount(

Java淺談數組之內存分析

說明 變量賦值 com logs .info clas code new blog 引用類型的數組的初始化 1數組元素是引用時的內存分析 package com.java.array; class Person{ public int age;//年齡

Ocata Neutron代碼分析——Neutron RPC啟動過程分析

gre add ice common multi tween wait函數 tex 依次 RPC啟動跟Neutron API的啟動在同一個函數中執行,neutron.server.wsgi_eventlet.py中的eventlet_wsgi_server。 def ev