如何加载数组中的图像以更快地显示 android
how to load images in array to faster display android
你好,我是 运行 一个线程内的 onuithread,它有一个时间,每次都会随机变化,直到它 select 列表中的 2 个项目。我的问题是这个项目有图片,我的想法是每次更改名称时图片都应该更改但是在添加图片时它会显示如下内容:
跳过 66 帧!应用程序可能在其主线程上做了太多工作。
有没有办法将图片加载到数组中,然后在runuithread中只显示它们而不再次加载它们?在我的 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
}
图像可以作为位图对象加载和存储。您可以从这样的资源加载位图:
Bitmap bm = BitmapFactory.decodeResource(getResources(), {resourceId});
然后就可以设置图片了:
player1_iv.setImageBitmap(bm);
希望对您有所帮助
你好,我是 运行 一个线程内的 onuithread,它有一个时间,每次都会随机变化,直到它 select 列表中的 2 个项目。我的问题是这个项目有图片,我的想法是每次更改名称时图片都应该更改但是在添加图片时它会显示如下内容: 跳过 66 帧!应用程序可能在其主线程上做了太多工作。
有没有办法将图片加载到数组中,然后在runuithread中只显示它们而不再次加载它们?在我的 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
}
图像可以作为位图对象加载和存储。您可以从这样的资源加载位图:
Bitmap bm = BitmapFactory.decodeResource(getResources(), {resourceId});
然后就可以设置图片了:
player1_iv.setImageBitmap(bm);
希望对您有所帮助