Как изменить список слоев с возможностью рисования?

Пытаясь узнать что-то новое и не могу понять этого, любая помощь приветствуется. . Учитывая этот простой код, который взят прямо из документации Google:

Layers.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/first_image">
      <bitmap android:src="@drawable/android_red"
        android:gravity="center" />
    </item>
    <item android:id="@+id/second_image" android:top="10dp" android:left="10dp">
      <bitmap android:src="@drawable/android_green"
        android:gravity="center" />
    </item>
    <item android:id="@+id/third_image" android:top="20dp" android:left="20dp">
      <bitmap android:src="@drawable/android_blue"
        android:gravity="center" />
    </item>
</layer-list>

И main.xml:

<ImageView
    android:id="@+myImageView"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/layers" />

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

Спасибо.

Итак, теперь у меня есть новый графический объект, который я хочу заменить в переменной myImage правильно? Как мне добавить это в список слоев? Я предполагаю, что использую findDrawableByLayerId и setDrawableByLayerId , но как именно? Или я мог делать это совершенно неправильно! Помощь!

Что я пытаюсь сделать? Измените отображаемый объект для рисования. Например, предположим, что у меня есть еще один объект для рисования под названием "android_purple", как мне включить его для рисования "android_green" в приведенном выше примере списка слоев?

РЕДАКТИРОВАТЬ:

С моими ограниченными знаниями вот мой код на данный момент (который не работает, я получаю сообщение об ошибке setDrawableByLayerId не определено):

Resources res = getApplicationContext().getResources();
BitmapDrawable newImage = (BitmapDrawable) res.getDrawable(R.drawable.android_purple); //Get replacement image, can't use LayerDrawable or get error.   
boolean layer_drawable_changed = (setDrawableByLayerId((R.id.second_image), newImage)); //Set new drawable? Error on this line.
43
задан Jonik 7 June 2016 в 14:42
поделиться