我的代码有问题。关键是我有16个图像,当负载最初我的滚动活动没有滞后问题,但在几个setimageas变得非常慢。我希望你能帮助我。 ps:将16个图像加载到一个片段上,当我从一个片段移动到另一个片段时,会出现滞后问题。
答案 0 :(得分:1)
我建议您使用Picaso库加载图像,因为它非常快速有效
就像
一样简单Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
有关详情,建议您转到Picaso documentation
答案 1 :(得分:0)
您可以使用Android Universal Image Loader library来解决此问题。还尝试使用列表视图或网格视图。
答案 2 :(得分:0)
这是代码,那么如果通过xml src加载图片没有任何延迟,只需使用setImageDrawable延迟出来..
for(int h=0;h<16;h++){
final int finalH = h;
button[h].setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
for (int i = 0; i < 8; i++) {
if (tresy[i] == ((int) button[finalH].getTag())) {
return true;
}
}
if ((test)&&(tempo)) {
Log.d("id", String.valueOf(button[finalH].getTag()));
button[finalH].setImageDrawable(carte[((int) button[finalH].getTag())]);
//set image resource tag!
logTaG[0] = (int) button[finalH].getTag();
logBtn = finalH;
test = false;
} else if(tempo) {
test = true;
button[finalH].setImageDrawable(carte[((int) button[finalH].getTag())]);
//set image resource tag!
logTaG[1] = (int) button[finalH].getTag();
if ((logTaG[0] == logTaG[1] && (logBtn != finalH))) {
tresy[j] = logTaG[0];
Intent intent = new Intent(v.getContext(), Browser_descrizione.class);
intent.putExtra("Tag", tresy[j]);
startActivity(intent);
j++;
Log.d("bravo", "hai vinto");
if (j == 7) {
Log.d("Bravo", "hai completato il gioco");
//Far comparire warning con scritto ricomincia o esci
attempt++;
SM.sendData(attempt);
}
} else {
Log.d("Riprova", "sarai più fortunato");
final Handler handler = new Handler();
tempo = false;
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Do something after 5s = 5000ms
button[finalH].setImageResource(R.drawable.back_card);
button[logBtn].setImageResource(R.drawable.back_card);
tempo = true;
}
}, 500);
attempt++;
SM.sendData(attempt);
}
}
return true;
}
return false;
}
});
}