Drawable массив из XML в INT для адаптера утилизатора - PullRequest
0 голосов
/ 09 мая 2018

Это один из многих массивов, которые я помещаю в .xml

<array name="clrs">
        <item>@drawable/red_bg</item>
        <item>@drawable/yellow_bg</item>
        <item>@drawable/green_bg</item>
        <item>@drawable/white_bg</item>
        <item>@drawable/white_bg</item>
        <item>@drawable/white_bg</item>
    </array>

когда я использую getResources().getIntArray(R.array.clrs); результат равен 0 int
На официальных разработчиках Android он говорит использовать его так:

Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);

но тогда тип drawable и мне нужен int для моего адаптера утилизатора

setImageResource(myCustomItem.getImage());//must be int

Как мне изменить тип или использовать другой метод для отображения изображения на моем просмотре карты?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Спасибо за ваш ответ, но я не пробовал. Возможно, это работает, но я нашел лучшее и, вероятно, намеченное решение. Вместо использования setImageResource() я использую setImageDrawable()

0 голосов
/ 09 мая 2018

Попробуйте:

<?xml version="1.0" encoding="utf-8"?>
<resources>

  <integer-array name="random_imgs">
    <item>@drawable/red_bg</item>
    <item>@drawable/yellow_bg</item>
    <item>@drawable/green_bg</item>
    <item>@drawable/white_bg</item>
    <item>@drawable/white_bg</item>
    <item>@drawable/white_bg</item>
  </integer-array>

Затем в вашей деятельности, доступ к ним, как это:

TypedArray imgs = getResources().obtainTypedArray(R.array.random_imgs);

// get resource ID by index
imgs.getResourceId(i, -1)

// or set you ImageView's resource to the id
mImgView1.setImageResource(imgs.getResourceId(i, -1));

// recycle the array
imgs.recycle();

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...