2013-04-25 4 views
0

Я пытаюсь найти drawable (изображения) в файле ресурсов в android из моего проекта библиотеки. Возможно ли это без контекста фактического проекта андроида или мне нужно добавить, что в? Также как я смогу найти идентификатор через мой проект библиотеки, используя строку в качестве имени идентификатора, а затем преобразую ее в соответствующее целое число, чтобы установить фоновый ресурс.Доступ к выталкивающим ресурсам из проекта библиотеки в Android

Это то, что я пытался до сих пор: Это работает, но только смотрит на rescources в проекте библиотеки, мне нужно посмотреть на ресурсы в текущем проекте приложения

try 
      { 
       Class res = R.drawable.class; 
       Field field = 
        res.getField("string_ID_I_want"); 
       drawableId = field.getInt(null); 
      } 

ответ

0

Фактические Drawable ресурсы являются скомпилированные в ваше приложение, поэтому доступ к ним ничем не отличается от доступа к обычным ресурсам приложений.

Предположим, что идентификатор выталкиваемого в библиотеке файла big_picture. Затем R.drawable.big_picture - это идентификатор извлекаемого объекта, который вы хотите загрузить. Вам не нужно использовать интроспекцию. Если R.drawable.big_picture недоступен, что-то не так с вашей настройкой проекта (или с ошибкой компиляции).

0

Какое имя пакета вашего проекта библиотеки.

Если ваше имя пакет com.examplelib.blahblah и ваша вытяжка называется myicon, просто убедитесь, что

import com.examplelib.blablah.R;

Затем в том же файл, где вы импортировали это R, вы можете просто ввести R.drawable.myicon

0
Context context = getApplicationContext(); 
Resources r = context.getResources(); 
r.getDrawable(id); //pass your drawable id in it, could be R.id.whatever 
+0

Что я не знаю, имя ресурса во время компиляции, но я знаю, что он будет выравниваться с введенной строкой текстового файла, который каждый пользователь создает отдельно. По сути, я могу преобразовать из строки, чтобы найти идентификатор и все еще получить drawable? –

+0

Если вы не знаете id во время компиляции, а затем во время выполнения вам нужно прочитать файл, а не находить его как ресурс, так как drawable не имеет метода setID() 'и' getID', и вы не сможете ссылаться на них по id. – StoneBird

+0

Или, возможно, вы хотите попробовать эту ссылку. http://developer.android.com/reference/android/view/View.html#getDrawableState() – StoneBird

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