Android 当滚动时,与recyclerView和cardView的应用比较滞后

Android 当滚动时,与recyclerView和cardView的应用比较滞后,android,android-recyclerview,android-cardview,Android,Android Recyclerview,Android Cardview,我的应用程序有问题,我在CardView中使用了recyclerView,但是当我在我的设备中运行我的应用程序时,滚动太慢了,日志中也有这样一条消息:“我/Choreographer:跳过了42帧!应用程序可能在其主线程上做了太多工作。” 我是这方面的新手,所以我研究了如何使用像毕加索这样的库(我只使用可绘制目录中的图像),但问题仍然存在,而且,我读过关于assincTask的文章,但我不确定我需要将assyncTask类放在代码中的什么位置。我将感谢所有能为我提供的帮助 主要活动 public

我的应用程序有问题,我在CardView中使用了recyclerView,但是当我在我的设备中运行我的应用程序时,滚动太慢了,日志中也有这样一条消息:“我/Choreographer:跳过了42帧!应用程序可能在其主线程上做了太多工作。” 我是这方面的新手,所以我研究了如何使用像毕加索这样的库(我只使用可绘制目录中的图像),但问题仍然存在,而且,我读过关于assincTask的文章,但我不确定我需要将assyncTask类放在代码中的什么位置。我将感谢所有能为我提供的帮助

主要活动

public class MainActivity extends AppCompatActivity {

    private RecyclerView recycler;
    private RecyclerView.Adapter adapter;
    private RecyclerView.LayoutManager lManager;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ArrayList<InfoCards> items = new ArrayList<>();
        items.add(new InfoCards(R.drawable.arduino_uno_2, getString(R.string.name_card1), getString(R.string.info_card1)));
        items.add(new InfoCards(R.drawable.hc05_bluetooth_module, getString(R.string.name_card2), getString(R.string.info_card2)));
        items.add(new InfoCards(R.drawable.ciruit_detail, getString(R.string.name_card3), getString(R.string.info_card3)));
        items.add(new InfoCards(R.drawable.ciruit_detail, getString(R.string.name_card4), getString(R.string.info_card4)));

        setContentView(R.layout.activity_main);


        recycler = (RecyclerView) findViewById(R.id.recycler_view);
        recycler.setHasFixedSize(true);


        lManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
        recycler.setLayoutManager(lManager);


        adapter = new CardAdapter(this, items);
        adapter.setHasStableIds(true);
        recycler.setAdapter(adapter);


    }

}

你的问题绝对是

viewHolder.imagen.setImageResource(items.get(i).getImagen());
我建议您使用Glide: 然后,您的代码将看起来像这样:

Glide.with(context).load(items.get(i).getImagen()).into(viewHolder.imagen);

你的问题绝对是

viewHolder.imagen.setImageResource(items.get(i).getImagen());
我建议您使用Glide: 然后,您的代码将看起来像这样:

Glide.with(context).load(items.get(i).getImagen()).into(viewHolder.imagen);

毕加索或格莱德应该很好。让我们试试!我尝试过毕加索,但当我运行应用程序时,一些图像没有出现,只有一个白色的正方形。也许我做错了,谢谢你的建议,现在Glide没有滞后。毕加索或Glide应该没问题。让我们试试!我尝试过毕加索,但当我运行应用程序时,一些图像没有出现,只有一个白色的正方形。也许我做错了,谢谢你的建议,现在使用Glide没有延迟。最后!!,我使用Glide解决了我的问题,现在没有延迟:),谢谢你的帮助!最后我使用Glide解决了我的问题,现在没有延迟:),谢谢你的帮助!