2016-09-01 5 views
1

Я получаю URI от Google с помощью этого метода:Диспетчер - преобразовать URI из игровых сервисов Google Play к Drawable

Player me = Games.Players.getCurrentPlayer(mGoogleApiClient); 
Uri uri = me.getHiResImageUri(); 

Я прочитал в различных должностях, что из-за ограничений безопасности Google, мне нужно использовать класс ImageManager.

Этот класс предоставляет только пустоты, которые непосредственно устанавливают URI в качестве выделенного для ImageView I. Это метод: loadImage(ImageView imageView, Uri uri);

Проблема в том, что мне нужно получить переменную класса Drawable из этого Uri и использовать ее. Наличие Uri-набора в качестве рисунка изображения не работает в моем конкретном случае. Я не знаю, есть ли класс, похожий на ImageManager, или если есть способ обхода, который можно извлечь.

Спасибо за все ответы заранее!

ответ

0

Один подход заключается в использовании HttpURLConnection и вызовите URL, вы будете затем получить InputStream и использовать его для создания экземпляра BitMap путем декодирования его через BitmapFactory.decodeStream. Как указано в @ señor-reginold-francis в his answer, не забудьте добавить свойство «Пользователь-агент», так как ему может быть отказано в доступе, если его нет (учитывая, что вы получаете его из домена google)

0

Вы все еще должны определить, что вы хотите сделать с изображением.

final ImageView imgView = (ImageView) findViewById(R.id.imageView); 
ImageManager.create(context) 
    .loadImage(new ImageManager.OnImageLoadedListener() { 
     @Override 
     public void onImageLoaded(Uri uri, Drawable drawable, boolean b) { 
      imgView.setImageDrawable(drawable); 
     } 
}, participant.getHiResImageUri(), R.drawable.placeholder); 
Смежные вопросы