Как установить фоновое изображение для макета в Android из пути к файлу - PullRequest
1 голос
/ 10 июля 2020

Я хочу установить фоновое изображение для макета в Android с использованием случайного изображения.

У меня есть 20 изображений в forder res / drawable, имена изображений: wallpaper1, wallpaper2, ..., wallpaper20.

мой код:

RelativeLayout manHinhApp=(RelativeLayout)findViewById(R.id.manHinh);
ArrayList<Integer> arrImage=new ArrayList<>();
        arrImage.add(R.drawable.wallpaper1);
        arrImage.add(R.drawable.wallpaper2);
        arrImage.add(R.drawable.wallpaper3);
        arrImage.add(R.drawable.wallpaper4);
        arrImage.add(R.drawable.wallpaper5);
        arrImage.add(R.drawable.wallpaper6);
        //........
        arrImage.add(R.drawable.wallpaper20);
        Random random=new Random();
        int position=random.nextInt(arrImage.size())+1;
        manHinhApp.setBackgroundResource(arrImage.get(position));

Работает правильно.

Я хочу сделать его короче. мой код:

 RelativeLayout manHinhApp=(RelativeLayout)findViewById(R.id.manHinh);
Random random=new Random();
        int position=random.nextInt(20)+1;
        int resID = getResources().getIdentifier("org.anddev.android.ViewsViDu:drawable/wallpaper"+position, null, null);
                                                                   //ViewsViDu is my name project
        manHinhApp.setBackgroundResource(resID);

, но он не работает. спасибо!

1 Ответ

0 голосов
/ 10 июля 2020

У меня работает этот код:

String nameimg="wallpaper"+position;
int resID= MainActivity.this.getResources()
                    .getIdentifier(nameimg, "drawable",
                            MainActivity.this.getPackageName());
 manHinhApp.setBackgroundResource(resID);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...