【问题标题】:Lag after setImageDrawable在 setImageDrawable 之后滞后
【发布时间】:2016-03-05 00:14:22
【问题描述】:

我的代码有问题。关键是我有 16 张图像,当最初加载时,我的 Scrolling 活动没有滞后问题,但在几个 setimageas 之后变得非常慢。我希望你能帮助我。 ps:16张图片加载在一个片段上,当我从一个片段移动到“另一个滚动浏览”时会出现延迟问题。

【问题讨论】:

  • 使用方法跟踪来确定您将时间花在哪里。否则,如果您在这里需要帮助,您需要提供minimal reproducible example

标签: java android android-fragments imageview


【解决方案1】:

我建议你使用 Picaso 库来加载图像,因为它非常快速和高效

就这么简单

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);

更多信息我建议你去Picaso documentation

【讨论】:

    【解决方案2】:

    您可以使用Android Universal Image Loader library 来解决这个问题。也尝试使用列表视图或网格视图。

    【讨论】:

    • 另一个库是Picasso,无论哪种情况,您的手机都可能使用大量内存来加载图像。上述两个库都处理得很好
    【解决方案3】:

    这是代码,那么如果通过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;
                }
            });
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多