Android - Открытый ресурс от Строки @drawable

Я имею:

String uri = "@drawable/myresource.png";

Как я могу загрузить это в ImageView? this.setImageDrawable?

59
задан RedBlueThing 19 August 2010 в 12:31
поделиться

2 ответа

Если вам действительно нужно работать со строкой, попробуйте что-нибудь вроде этого:

private void showImage() {
    String uri = "drawable/icon";

    // int imageResource = R.drawable.icon;
    int imageResource = getResources().getIdentifier(uri, null, getPackageName());

    ImageView imageView = (ImageView) findViewById(R.id.myImageView);
    Drawable image = getResources().getDrawable(imageResource);
    imageView.setImageDrawable(image);
}

Иначе я бы порекомендовал вам работать со ссылками R. *, подобными этой :

int imageResource = R.drawable.icon;
Drawable image = getResources().getDrawable(imageResource);
170
ответ дан 24 November 2019 в 18:00
поделиться

Во-первых, не делайте этого, поскольку этот синтаксис @drawable не имеет смысла в коде Java. Используйте int resourceId = R.drawable.myresource .

Если по какой-то причине вам действительно нужно указать имя ресурса и вам нужен целочисленный идентификатор, используйте getIdentifier () в объекте Resources .

25
ответ дан 24 November 2019 в 18:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: