ElvisBoss
ElvisBoss

Reputation: 199

how to load images in array to faster display android

Hello i am running a onuithread inside a thread and it has a times and it will be changing randomly each time slower until it select 2 items from the list. my problem is that this items has pictures and my idea is to everytime the name change the picture should change but when adding the pictures it will display something like this: Skipped 66 frames! The application may be doing too much work on its main thread.

is there a way to load the images in the array and then in the runuithread only display them without loading them again? here in my runuithread:

 while (i < 400) {
                try {
                    Thread.sleep(i);
                    // here you check the value of getActivity() and break up if needed
                    if (getActivity() == null) {
                        return;
                    }
                    getActivity().runOnUiThread(new Runnable() // start actions in UI thread
                    {

                        @Override
                        public void run() {
                            start_btn.setEnabled(false);
                            Collections.shuffle(numbers);
                            Collections.shuffle(players_list);
                            player1_tv.setText(players[players_list.get(0)]);
                            player2_tv.setText(players[players_list.get(1)]);
                            group1_tv.setText(all_teams.get(numbers.get(0)));

                            player1_iv.setImageResource(getResources().getIdentifier(pictures.get(numbers.get(0)),"drawable",con.getPackageName()));
                            group2_tv.setText(group.get(numbers.get(1)));
                            i += 30;

                            if (i > 420) {
                                start_btn.setEnabled(true);
                            }
                        }
                    });
                } catch (InterruptedException e) {
                    // ooops
                }

Upvotes: 0

Views: 294

Answers (1)

Anton Maiorov
Anton Maiorov

Reputation: 183

The image can be loaded and stored as a Bitmap object. You can load Bitmap from a resource like this:

Bitmap bm = BitmapFactory.decodeResource(getResources(), {resourceId});

Then you can set the image:

player1_iv.setImageBitmap(bm);

Hope this helps

Upvotes: 1

Related Questions