android - ImageView cause slow scroll performances in RecyclerView -


i'm developping app xamarin.android , can't rid of performance issue recyclerview.

here's problem: have recyclerview displaying cardviews, 4. each cardview contains image tried keep pretty light (65ko) in imageview. images loaded drawable res folder @ jpg format.

the scroll damn laggy ! tried optimize cardview's layout best could, , runs without imageviews.

how make smooth images ?

here's recyclerview:

<framelayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:local="http://schemas.android.com/apk/res-auto"     android:layout_width="match_parent"     android:layout_height="match_parent">   <imageview         android:layout_width="match_parent"         android:layout_height="match_parent"         android:scaletype="centercrop"         android:src="@drawable/background" />     <linearlayout             android:orientation="vertical"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_alignparentbottom="true"             local:mvxbind="visibility invertedvisibility(iserror)">     <mvvmcross.droid.support.v7.recyclerview.mvxrecyclerview         android:orientation="vertical"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:layout_margintop="56dp"         android:layout_marginbottom="8dp"         android:cliptopadding="false"         local:mvxbind="itemssource benchmarkwods; itemclick wodselectedcommand"         local:mvxitemtemplate="@layout/listitem_benchmarkwod"/>      </linearlayout>  </framelayout> 

and cardview template:

<android.support.v7.widget.cardview xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:card_view="http://schemas.android.com/apk/res-auto"     xmlns:local="http://schemas.android.com/apk/res-auto"     android:layout_width="match_parent"     android:layout_height="wrap_content"     card_view:cardelevation="4dp"     android:translationz="4dp"     card_view:cardcornerradius="2dp"     card_view:cardpreventcorneroverlap="true"     android:layout_margintop="8dp"     android:layout_marginleft="8dp"     android:layout_marginright="8dp"     card_view:cardbackgroundcolor="#ffffff">     <linearlayout         android:orientation="vertical"         android:layout_width="match_parent"         android:layout_height="match_parent">         <framelayout             android:layout_width="match_parent"             android:layout_height="140dp">             <imageview                 android:layout_width="300dp"                 android:layout_height="140dp"                 android:scaletype="centercrop"                 android:src="@drawable/stock1_small" />             <view                 android:layout_width="match_parent"                 android:layout_height="140dp"                 android:background="#80000000" />             <relativelayout                 android:layout_width="match_parent"                 android:layout_height="140dp"                 android:padding="8dp">                 <textview                     android:id="@+id/wod_date"                     android:layout_width="wrap_content"                     android:layout_height="wrap_content"                     android:text="some text"                     android:textcolor="#ffffff"                     android:layout_alignparenttop="true"                     android:layout_alignparentleft="true" />                 <textview                     android:id="@+id/wod_time"                     android:layout_width="wrap_content"                     android:layout_height="wrap_content"                     android:text="some text"                     android:textcolor="#ffffff"                     android:textsize="14sp"                     android:textstyle="bold"                     android:layout_alignparenttop="true"                     android:layout_centerhorizontal="true"/>                 <textview                     android:id="@+id/wod_name"                     android:layout_width="wrap_content"                     android:layout_height="wrap_content"                     android:text="some text"                     android:textcolor="#ffffff"                     android:textsize="24sp"                     android:textstyle="bold"                     android:layout_alignparentbottom="true"                     android:layout_alignparentleft="true"                     local:mvxbind="text name"/>             </relativelayout>         </framelayout>         <relativelayout             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:background="#4cd964"             android:paddingleft="8dp"             android:paddingright="8dp"             android:paddingtop="4dp"             android:paddingbottom="4dp">         <textview                 android:id="@+id/wod_type"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:text="some text"                 android:textallcaps="true"                 android:textcolor="#ffffff"                 android:textsize="16sp"                 android:textstyle="bold"                 android:layout_alignparentleft="true"                 local:mvxbind="text type" />             <imageview                 android:id="@+id/wod_type_icon"                 android:layout_width="24dp"                 android:layout_height="24dp"                 android:layout_alignparentright="true"                 android:src="@drawable/ic_person_white_24dp" />         </relativelayout>         <textview             android:id="@+id/wod_goal"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:paddingtop="8dp"             android:paddingleft="8dp"             android:text="some text"             android:textallcaps="true"             android:textcolor="#000000"             android:textsize="18sp"             android:textstyle="bold"             local:mvxbind="text metcontype" />         <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:padding="8dp"             android:textcolor="#000000"             android:textsize="16sp"             android:singleline="false"             android:text="some text" />     </linearlayout> </android.support.v7.widget.cardview> 

as can see, tried put fixed widths , heights in order prevent processing device.

also, i've got bonus question you: cardview elevation not working @ all. after browsing whole web solution. if find what's going on, you're superhero !

edit: (solved) problems because of gpu acceleration wasn't turned on app.

it caused scroll lag, elevation issue , gpu overdraw disfunction.

maybe problem "overdraw backgrounds", please enable "show overdraw areas" in "developer options" , check amount of overdraw on screen.


Comments