Взаимодействие с активами изображений 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 считаются иконками?