Взаимодействие с активами изображений mipmap в Android Studio, отображаемых с помощью виджета ImageView

Я пытаюсь сделать что-то, что должно быть простым, импортировать файлы PNG, использовать их в ряде виджетов изображений (в качестве фона). Как часть моего кода, я хотел бы видеть, что при нажатии на виджет a виджет b обновляется на фоне виджета a.

Похоже, что тип информации, которую я должен был бы передать без особых усилий, и вся помощь там просто говорит "импорт в папку Drawable", но ранее в этом году Android-студия перестала помещать импортированные графические ресурсы в папку Drawable и запустила положить их в папку MipMap. Я могу использовать эти изображения в качестве фона, пока я определяю фон в представлении дизайна Activity_mail.xml, но я не могу взаимодействовать с фоном изображения в моем коде, потому что все методы ожидают ссылки на тип Drawable, но мои изображения не интерпретируются как Drawables, потому что я не могу получить их в эту папку. Что мне не хватает?

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

public class MainActivity extends AppCompatActivity {
    int[] letters = new int[26];

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    int i = 0;

    for (char alphabet = 'a'; alphabet <= 'z'; alphabet++) {
        String ltr = String.valueOf(alphabet);
        ltr = "letter"+ltr;
        letters[i] = this.getResources().getIdentifier(ltr,"mipmap",this.getPackageName());

        i++;

    }

  }
}

Следующий метод вызывается при касании изображения. Я пытаюсь взять описание из фона изображения и обновить фон другого изображения, используя файлы png, которые есть в моей папке mipmap, ссылки на которые я (теоретически) храню в массиве.

public void onClickLetter(View v) {
    String actualLetter;
    int letternumber;


    String letterclicked = v.getContentDescription().toString();
    letterclicked = letterclicked.replace("letter", "");  //this gives me a number, which I parse to an int below, which allows me to select a resource ID stored in my array, this is working perfectly elsewhere in my code


    System.out.println(letterclicked);

    actualLetter = (v.getTag()).toString();
    System.out.println(actualLetter);

    letternumber = parseInt(letterclicked); //I should be able to use the letters[letternumber] array reference now, but I can't seem to pass it to anything since it's not a drawable file.

как передать ссылку на файл изображения в моем исходном виджете изображения (параметр View v в этом методе) и обновить второй виджет изображения с файлом изображения в качестве фона, чья ссылка хранится в массиве?

Есть ли опция setbackground, которая не ожидает рисования файла?

Если мне нужно использовать папку drawable, скажите, пожалуйста, как добавить файлы png в папку drawable.

Моя проблема только в том, что я использую изображение, а не кнопки или какой-то другой виджет?

Моя проблема в том, как я храню идентификаторы ресурсов mipmap (где ресурсы изображений были автоматически размещены на android studio)? Я знаю, что файлы mipmap предназначены только для значков, но, как я упоминал ранее в этом году, студия android начала помещать все изображения в папку mipmap.

1 ответ

Решение

Здесь есть ответ, который решает проблему. Переключите представление на проект, и вы можете использовать папку drawable. Все изображения в приложениях для Android считаются иконками?

Другие вопросы по тегам