2015-07-03 3 views
0

У меня есть функция, как это:Как получить ссылку от Drawable?

fromColorResAndUrl(@ColorRes int colorRes, String imageUrl) 

Теперь я называю это следующим образом:

fromColorResAndUrl(R.color.blue, 
       "http://www.example.com/wallpaper.jpg"); 

Вы можете увидеть его использовать внешнюю ссылку на изображение.

Я хочу использовать локальную ссылку для изображения. поэтому я сохраняю 'wallpaper.jpg' в res/drawable.

Теперь я хочу знать, как это можно использовать в функции?

Я стараюсь file:///android_asset/drawable/wallpaper.jpg, но не удался!

ответ

0

Использование R.drawable.wallpaper, как видно на Drawable Resources on Android Developers

Кроме того, при импорте вводимого коэффициента, рекомендуется иметь их масштабируется для каждого размера телефона. Я рекомендую использовать android-drawable-importer-intellij-plugin, он очень быстр и прост в использовании.

0

В file:///android_asset/... URL-адрес может только найти ресурсы в папке assets, так что если вы используете file:///android_asset/drawable/wallpaper.jpg, то вы должны положить wallpaper.jpg внутри assets/drawable/ папку, которая не является местоположением по умолчанию для вводимого коэффициента.

0

Strip из строки URL, так у вас есть только имя файла без расширения

String fileName = "wallpaper" 

Затем получить значение INT ресурса:

int imgR = getResources().getIdentifier(fileName, "drawable", getPackageName()); 

затем получить изображение с: getResources().getDrawable(imgR). В качестве примера в ImageView:

try { 

    yourImageView.setImageDrawable(getResources().getDrawable(imgR) 
    } catch (NotFoundException e) { 
     int defaultR = getResources().getIdentifier(yourfallbackimg, "drawable", getPackageName()) 
     yourImageView.setImageDrawable(getResources().getDrawable(defaultR)) 
    } 

Использование попытка поймать только в случае, если у вас нет файла возвращается, таким образом, вы будете иметь изображение по умолчанию вместо аварии с.

EDIT

проверка http://pastebin.com/yN3zUciN

+0

Спасибо, я пытаюсь 'Струнный FileName = "wallpaper_51"; int imgR = getResources(). GetIdentifier (имя_файла, "drawable", getPackageName()); ImageView yourImageView; String str = yourImageView.setImageDrawable (getResources(). GetDrawable (imgR)); 'Но я получил ошибку void – partiz

+0

Зачем вы пишете String str = ImageView.setImageDrawable? – Pztar

+0

Я знаю, что это неправильно. Я хочу получить URL-адрес изображения в качестве строки для использования в этой функции. Я хочу знать, как я могу изменить его на строку now – partiz

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