2010-06-13 83 views
3

AFAIK通過MediaStore.Images.Thumbnails訪問圖像的縮略圖會在第一次嘗試時生成縮略圖,這就是我需要針對SD卡上的特定位置執行的操作。Android:從SD卡上的特定位置獲取縮略圖

問題是如何使特定文件夾下的內容的有效URI?

我可以找到所有的答案MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI作爲uri使managedQuery。它的結果是光標,指向所有的SD卡圖像,而沒有例子可以找到如何只訪問特定的文件夾。

回答

0

也許你可以只列出目錄中的文件並解析它們以獲取縮略圖而不使用內容提供者。您可以使用inSampleSize選項來獲取小的位圖而不是完整的圖像Strange out of memory issue while loading an image to a Bitmap object

+0

時的大小變化很大很難猜測inSampleSize的因子,如果不加載完整的圖像知道它的寬度和高度,以便將其縮小到默認的拇指大小(即。 90x90) – dykzei 2010-06-13 19:31:13

+0

您可以使用justDecodeBound選項http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inJustDecodeBounds。它會返回你的位圖大小,而不會解壓縮完整的圖像並分配內存。知道圖像大小,您可以計算每個圖像所需的inSampeSize因子。 – Fedor 2010-06-14 02:51:05

0

可能是晚了,但對一些人會是有益的

Mihai Fonoage說...

使用類似

File imagesDir = new File(Environment.getExternalStorageDirectory().toString() + "/pathToDirectory"); 
File[] imageList = imagesDir.listFiles(); 
for (File imagePath : imageList) { 
bitmap = BitmapFactory.decodeStream(imagePath.toURL().openStream());} 

Here you have some great tutorial.