2012-02-15 2 views
9

Я использую API в моем Android приложения, которое загружает изображения из Интернета и показывает пустышку анимацию в то время как изображения загрузки (RemoteImageView, часть пакета Ignition hereAndroid. - ссылка на ресурс вытяжка в качестве URL

в некоторых точках приложения, мне нужно, чтобы показать изображения из местного вводимого коэффициента ресурсов и не загружается из Интернета.

можно ли получить доступ к локальному вводимому коэффициенту ресурсов с использованием URL?

ответ

3

локальных ресурсов-образом не имеют URL-адресов, у них есть URI. Поэтому, если у вас есть изображение в drawable, вы можете разобрать t подол от идентификатора ресурса до URI.

Uri uri=Uri.parse("R.drawable.image"); 

Однако, если вы также можете поместить свои изображения в папку активов пакета и получить к ним доступ, используя свой URL. URL-адрес файлов изображений будет «file: ///android_asset/image.png» Вы можете использовать любой из этих опций.

+0

Uri.parse говорит, что R.drawable.image должен быть строкой. Это не может быть правильно? –

+0

Woops, забыли добавить цитаты. Исправлено сейчас. – noob

+0

Nope ... ни работа. Я думаю, что API делает соединение через URLConnection, и я должен передать ему строковое представление URL-адреса. Uri.parse(). ToString() просто возвращает исходную String ... и ее не находит ее с файлом: /// android_asset/.. path либо –

10

Способ сделать это:

использовать эту линию "android.resource://[your package]/"+[res id]

Вот пример

Uri myURI = Uri.parse("android.resource://com.example.project/" + R.drawable.myimage); 

для удобного вы можете использовать его в качестве способа:

public static Uri getUrl(int res){ 
    return Uri.parse("android.resource://com.example.project/" + res); 
} 

Предупреждение не использовать context.getPackageName() в качестве замены имени пакета, так как он может вернуть нулевое значение.

+0

В каких случаях он возвращает null после инициализации вашего приложения? Если вы не загружаете его программно, то строит, что изменение пакета нарушит код. –

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