2010-06-13 1 views
3

AFAIK, получая миниатюры для изображений через MediaStore.Images.Thumbnails, будет генерировать эскизы с первой попытки, и это то, что мне нужно выполнить против определенного места на SD-карте.Android: получение эскизов с определенного места на SD-карте

Вопрос в том, как сделать допустимый URI для контента в определенной папке?

Все ответы Я могу найти только MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI как uri, чтобы сделать managedQuery. И результатом этого является Cursor, который указывает на все изображения sdcard, в то время как нет примеров для доступа к только определенной папке.

ответ

0

Возможно, вы можете просто перечислить файлы в каталоге и проанализировать их, чтобы получить миниатюры без использования поставщика контента. Вы можете использовать параметр inSampleSize, чтобы получить небольшое растровое изображение, а не полное изображение Strange out of memory issue while loading an image to a Bitmap object.

+0

когда размер изменяется очень было бы трудно угадать фактор для inSampleSize без загрузки полного изображения, чтобы узнать его ширину и высоту, чтобы уменьшить его размер большого пальца по умолчанию (т. е. , 90x90) – dykzei

+0

Вы можете использовать опцию justDecodeBound http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inJustDecodeBounds. Он вернет вам размер растрового изображения без распаковки полного изображения и выделения памяти. Зная размер изображения, вы можете рассчитать требуемый коэффициент inSampeSize для каждого изображения. – Fedor

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.

Смежные вопросы