2015-08-22 6 views
5

Я пытаюсь загрузить изображения с пути камеры в GridView с помощью Пикассо 2.5.2Пикассо загрузка изображений

хранения/эмулировать/0/DCIM/Camera/IMG_20150822_133220.jpg здесь путь.

Также я попробовал данное решение для проблемы в реестре Github picasso. Но это не решает мою проблему.

Я пробовал с преобразованием пикассо, но изображения не получают нагрузку от пути камеры.

Я попробовал этот

File imageFile = new File(data.path); 
Picasso.with(mContext) 
    .load(imageFile) 
    .placeholder(R.drawable.default_error) 
    .error(R.drawable.default_error) 
    .resize(mItemSize, mItemSize) 
    .centerCrop() 
    .into(image); 
+0

Не могли бы вы показать код и если в логарифме есть ошибка? –

+0

@ Мириана Итани: Вопрос обновлен. Также пробовали с uri, stringpath и оба с «file: ///» в качестве префикса, но не работали. Я застрял на нем. –

+0

Что вы используете с помощью какого программного обеспечения? –

ответ

0

Вы должны пройти URL в метод load().

File imageFile = new File(data.path); 

try{ 
     String url = imageFile.toURI().toURL().toString(); 
     Picasso.with(mContext) 
       .load(url) 
       .placeholder(R.drawable.default_error) 
       .error(R.drawable.default_error) 
       .resize(mItemSize, mItemSize) 
       .centerCrop() 
       .into(image); 
    }catch (MalformedURLException exeption){ 
     exeption.printStackTrace(); 
    } 
+0

К сожалению, это не работает –

0

Не используйте жестко установленные пути для доступа к содержимому SD-карты - они не универсальны для всех устройств.

Использование .getExternalStoragePublicDirectory() и собственно двухпараметрическое File конструктор вместо:

File f = new File(
     Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), 
     "Camera/IMG_20150822_133220.jpg"); 
Picasso.with(mContext).load(f)./* ..; 

UPD О на самом деле, кроме того, у них есть an open bug, которая выглядит связанной, кто-то там говорит, что они работали вокруг вопроса с помощью абсолютного путь, поэтому попробуйте

Picasso.with(context).load(new File(data.path).getAbsolutePath())... 
+0

Это не сложно. Я дал вам путь, который я получаю во время отладки. –

+0

Нашли что-нибудь, посмотрите на обновление в своем ответе –

+0

Барстов. Извините, с Absolutepath он все еще не работает. –

0

У меня была аналогичная проблема сейчас, и именно так я ее решил. Я пытаюсь сделать снимок экрана моего телефона, и я сохранил его вниз, как JPG файл в этом FilePath:

filepath: /data/data/com.example.simon.myapp/app_report/report.jpg 

Однако Пикассо не загружал это вообще - это просто дает мне пустой экран.

Итак, когда я взял скриншот, я решил удалить .jpg из имени файла, так что путь_к_файлу напоминает это:

filepath: /data/data/com.example.simon.myapp/app_report/report 

Затем я использовал следующий код для доступа и не показывать мой снимок экрана с нет дальнейшие проблемы.

ContextWrapper cw = new ContextWrapper(context); 
    File directory = cw.getDir("report", Context.MODE_PRIVATE); 
    file = new File(directory, "/report"); 
    Log.e("filepath", file.getPath()); 
    Picasso.with(context).load(file).memoryPolicy(MemoryPolicy.NO_CACHE).into(screenshot); 

Я знаю, что вам нужно, чтобы получить расширение JPG файла в будущем этапе, так что если вам нужно, чтобы получить «report.jpg», просто переименовать файл, используя этот метод:

android, How to rename a file?

private boolean rename(File from, File to) { 
    return from.getParentFile().exists() && from.exists() && from.renameTo(to); 
} 
Смежные вопросы