मैं RecyclerView में 400x200 छवियों को लोड कर रहा हूँ laggy है, लेकिन स्क्रॉल 2k उपकरणों पर laggy है। मैं संसाधन से छवियों को लोड करने के लिए पिकासो का उपयोग कर रहा हूं।RecyclerView स्क्रॉल
आप डेमो छवियों में देख सकते हैं 2k स्क्रीन पर धुँधली कर रहे हैं, लेकिन अगर मैं उच्च संकल्प छवियों को लोड स्थिति खराब हो जाता है। इसे कैसे ठीक करें, मैं बड़ी छवि भी लोड नहीं कर रहा हूं, इसकी 400x200?
यहाँ मेरी कोड है Card_view.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
card_view:cardPreventCornerOverlap="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
card_view:cardCornerRadius="2dp"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/rel"
>
<ImageView
android:id="@+id/cardimage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/p7"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="title"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:paddingBottom="24dp"
android:textStyle="bold"
android:textSize="24sp"
android:id="@+id/cardtitle"
android:layout_gravity="center_vertical"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
Myadapter कोड
public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> {
private Context mContext;
List<Flower> list = new ArrayList<>();
public CardAdapter(Context mContext, List<Flower> list) {
this.mContext = mContext;
this.list = list;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_view, parent, false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.Flower=getItem(position);
holder.cardtitle.setText(list.get(position).name);
Picasso.with(mContext)
.load(list.get(position).id)
.placeholder(R.drawable.ic_launcher)
.into(holder.cardimage);
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
@Override
public int getItemCount() {
return list.size();
}
public Flower getItem(int i) {
return list.get(i);
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView cardimage;
TextView cardtitle;
Flower Flower;
public ViewHolder(View itemView) {
super(itemView);
cardimage = (ImageView) itemView.findViewById(R.id.cardimage);
cardtitle = (TextView) itemView.findViewById(R.id.cardtitle);
}
}
}
अद्यतन: मैं संसाधन से छवियों को लोड कर रहा हूँ, मैं नहीं कर रहा हूँ डाउनलोड कुछ भी नहीं
यहाँ मेरी सरणी है
private void initializeData() {
flowers = new ArrayList<>();
flowers.add(new Flower("Flower 1", R.drawable.p8));
flowers.add(new Flower("Flower 2", R.drawable.p10));
flowers.add(new Flower("Flower 3", R.drawable.p11));
flowers.add(new Flower("Flower 4", R.drawable.p8));
flowers.add(new Flower("Flower 5", R.drawable.photo2));
flowers.add(new Flower("Flower 6", R.drawable.photo6));
flowers.add(new Flower("Flower 7", R.drawable.p12));
flowers.add(new Flower("Flower 8", R.drawable.p9));
flowers.add(new Flower("Flower 9", R.drawable.p8));
flowers.add(new Flower("Flower 10", R.drawable.p8));
flowers.add(new Flower("Flower 11", R.drawable.p8));
flowers.add(new Flower("Flower 12", R.drawable.p10));
}
अद्यतन 2: दोस्तों मैं adapter.setHasStableIds (सही) की स्थापना करके अंतराल के सबसे तय, लेकिन एप्लिकेशन जबकि छवियों अभी तक लोड नहीं कर रहे हैं अभी भी पहले स्क्रॉल पर laggy है , इसे कैसे ठीक करें?
अद्यतन 3: मैं सिर्फ वेब से चित्र लोड करने की कोशिश की और सब कुछ चिकनी लगता है, शायद वहाँ संसाधन से लोड हो रहा है छवियों के साथ कुछ समस्या है।
ठीक है, तुम लोगों को धन्यवाद, मैं वेब से मेरी छवियों को लोड कर रहा हूँ।
क्या स्क्रॉल करते समय ही यह अंतराल होता है ?? या यह ऊपर और नीचे स्क्रॉलिंग दोनों के लिए अंतराल करता है? –
@ लुकास क्रॉफर्ड केवल स्क्रॉल करते समय इसकी लापरवाही। संपादित करें: इसकी छवियों को ऊपर और नीचे, एक बार जब छवियों को लोड किया जाता है तो वहां कम अंतराल होता है लेकिन यह अभी भी वहां है। –
क्या आपको इसके लिए समाधान मिला ?? –