Android mentre utilizza l'image cardview sta caricando molto pigro

Sto caricando immagini (sotto ~ 3MB di size) in Cardview da un database ed è stato infalte in Listviewstview.

Il caricamento e la navigazione di queste immagini è troppo lento.

  • Aggiorna frammento
  • Android App alternare Mercato o luogo
  • KeyAttestation in Android Nougat API 24
  • Come bloccare lo schermo Android tramite ADB?
  • Non support Picasso per scaricare le immagini che utilizzano il protocollo https
  • Android con Retrofit2 OkHttp3 - Errore POST Multipart
  • C'è qualche metodo per ridimensionare queste immagini per velocizzare e talvolta dispalyind [Duplicate] immagini in un'altra visualizzazione di carte?

    cardview xml

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/cv" android:layout_width="match_parent" android:layout_height="140dp" android:alpha="1" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" card_view:cardBackgroundColor="#FFFFFF" card_view:cardCornerRadius="10dp"> <RelativeLayout android:id="@+id/r1" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/img_product" android:layout_width="90dp" android:layout_height="90dp" android:layout_marginLeft="@dimen/activity_vertical_margin" android:layout_marginTop="20dp" /> <TextView android:id="@+id/product_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/img_product" android:layout_toEndOf="@+id/img_product" android:layout_toRightOf="@+id/img_product" android:inputType="textMultiLine" android:text="Parvana Fancy Necklace Set" android:textSize="18dp" android:textStyle="bold" /> <TextView android:id="@+id/txt_total" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/img_product" android:layout_toEndOf="@+id/img_product" android:layout_toRightOf="@+id/img_product" android:text="RS.234" android:textSize="20dp" android:textStyle="bold" /> <Button android:id="@+id/btn_remove" android:layout_width="32dp" android:layout_height="wrap_content" android:background="@drawable/wishlistddelete_selector" android:drawableLeft="@drawable/delete_icon" android:layout_alignTop="@+id/txt_total" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout> </android.support.v7.widget.CardView> </RelativeLayout> 

    listview xml

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/home_bground"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <RelativeLayout android:id="@+id/topbar1" android:layout_width="match_parent" android:layout_height="55dp" android:background="@drawable/top"> <ImageView android:id="@+id/btn_hme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:src="@drawable/home_icon" /> <TextView android:id="@+id/txt_pro_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:gravity="center_horizontal" android:text="Shopping Cart" android:textColor="#ffffff" android:textSize="18dp" android:textStyle="bold" /> </RelativeLayout> <ListView android:id="@+id/list_item" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/topbar1" android:animationCache="false" android:dividerHeight="0dp" android:listSelector="#00000000" android:scrollingCache="false" android:smoothScrollbar="true" /> </RelativeLayout> </RelativeLayout> 

    utilizzando l'accesso sqllite i dati del database

     public class Wishlist extends Activity { Button checkout; ListView ListCart; String name, cusid, ffname, llname, phone, fax, password, email; String[] qu, s; int[] g; int k = 0; String cost; ProgressDialog pDialog = null; List<CartProducts> product_list; Context ctx; Integer pos = 0, total = 0, q = 0, gtot = 0, total1 = 0, sum = 0; SQLiteDatabase FavData; private Context context; Integer i; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_modifywishlist); Intent page1 = getIntent(); cusid = page1.getStringExtra("cus_id"); ffname = page1.getStringExtra("fname"); llname = page1.getStringExtra("lname"); phone = page1.getStringExtra("ph"); fax = page1.getStringExtra("fax"); password = page1.getStringExtra("password"); email = page1.getStringExtra("email"); ListCart = (ListView) findViewById(R.id.list_item); ListCart.setScrollingCacheEnabled(false); Intent page2 = getIntent(); i = page2.getIntExtra("kvalue",1); pDialog = new ProgressDialog(this); ctx = this; FavData = Wishlist.this.openOrCreateDatabase("SHOPPING_CARTFAV", MODE_PRIVATE, null); FavData.execSQL("CREATE TABLE IF NOT EXISTS fav_items(product_id varchar, name varchar, price varchar, quantity integer, model varchar, image varchar, manufacturer varchar )"); ArrayList<CartProducts> myList = new ArrayList<CartProducts>(); Cursor crsr = FavData.rawQuery("SELECT * FROM fav_items", null); final String[] productID = new String[crsr.getCount()]; final String[] ProductName = new String[crsr.getCount()]; final String[] ProductPrice = new String[crsr.getCount()]; final String[] ProductQuantity = new String[crsr.getCount()]; final String[] ProductModel = new String[crsr.getCount()]; final String[] ProductImage = new String[crsr.getCount()]; final String[] ProductManufacturer = new String[crsr.getCount()]; int j = 0; while (crsr.moveToNext()) { String id = crsr.getString(crsr.getColumnIndex("product_id")); productID[j] = id;//product_id,name,price,quantity,model,image,manufacturer name = crsr.getString(crsr.getColumnIndex("name")); ProductName[j] = name; String price = crsr.getString(crsr.getColumnIndex("price")); ProductPrice[j] = price; String s = ProductPrice[j].toString(); s = s.replace(",", ""); String[] parts = s.split("\\."); // escape . String part1 = parts[0]; String part2 = parts[1]; part1 = part1.replace("₹", ""); total = Integer.parseInt(part1); // Toast.makeText(Table.this, part1, Toast.LENGTH_SHORT).show(); String qnty = crsr.getString(crsr.getColumnIndex("quantity")); ProductQuantity[j] = qnty; String s2 = ProductQuantity[j].toString(); total1 = Integer.parseInt(s2); sum = total * total1; String model = crsr.getString(crsr.getColumnIndex("model")); ProductModel[j] = model; String image = crsr.getString(crsr.getColumnIndex("image")); ProductImage[j] = image; String manufacturer = crsr.getString(crsr.getColumnIndex("manufacturer")); ProductManufacturer[j] = manufacturer; myList.add(new CartProducts(productID[j], ProductName[j], ProductPrice[j], ProductQuantity[j], ProductModel[j], ProductImage[j], ProductManufacturer[j])); gtot = gtot + sum; j++; } ListCart.setAdapter(new Wishlist_Listadapter(ctx, R.layout.activity_wishlist_cartrow, myList)); String s1 = ProductPrice.toString(); } } 

    class adattatore

     public class Wishlist_Listadapter extends ArrayAdapter<CartProducts> { Bitmap bitmap; ImageView img; String urll, name,totalps; SQLiteDatabase FavData; Integer total = 0, quanty = 1, grandtot = 0, i = 0; String it; Button addbtn, minbtn; EditText editqu; int total1 = 0, quantity=0, fulltotal = 0, sum; SQLiteOpenHelper dbhelper; Wishlist_Listadapter cart = Wishlist_Listadapter.this; private int resource; private LayoutInflater inflater; private Context context; int count=1 ; public Wishlist_Listadapter(Context ctx, int resourceId, List<CartProducts> objects) { super(ctx, resourceId, objects); resource = resourceId; inflater = LayoutInflater.from(ctx); context = ctx; } public View getView(int position, View convertView, ViewGroup parent) { /* create a new view of my layout and inflate it in the row */ convertView = (RelativeLayout) inflater.inflate(resource, null); final ViewHolder viewholder; viewholder = new ViewHolder(); final CartProducts banqt = getItem(position); totalps=(banqt.getPrice()); String s = totalps.toString(); s = s.replace(",", ""); String[] parts = s.split("\\."); // escape . String part1 = parts[0]; String part2 = parts[1]; part1 = part1.replace("₹", "");// Toast.makeText(getContext(), part1, Toast.LENGTH_LONG).show(); total = Integer.parseInt(part1); quanty = Integer.parseInt(banqt.getQuantity()); grandtot = total *quanty; viewholder.total = (TextView) convertView.findViewById(R.id.txt_total); viewholder.total.setText(String.valueOf(grandtot)); Button delet = (Button) convertView.findViewById(R.id.btn_remove); delet.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /*delete function*/ it = banqt.getProduct_id(); FavData = context.openOrCreateDatabase("SHOPPING_CARTFAV", context.MODE_PRIVATE, null); FavData.execSQL("DELETE FROM fav_items WHERE product_id=" + it + ";"); Intent intent = ((Wishlist) context).getIntent(); ((Wishlist) context).finish(); context.startActivity(intent); } }); viewholder.txtName = (TextView) convertView.findViewById(R.id.product_name); viewholder.txtName.setText(banqt.getName()); img = (ImageView) convertView.findViewById(R.id.img_product); urll = banqt.getImage().toString(); urll = urll.replaceAll(" ", "%20");// Toast.makeText(getContext(),urll,Toast.LENGTH_LONG).show(); new LoadImage().execute(urll); return convertView; } static class ViewHolder { TextView txtName; TextView total; EditText editqu; TextView txtprice; } private class LoadImage extends AsyncTask<String, String, Bitmap> { @Override protected void onPreExecute() { super.onPreExecute(); } protected Bitmap doInBackground(String... args) { try { bitmap = BitmapFactory.decodeStream((InputStream) new URL(args[0]).getContent()); } catch (Exception e) { e.printStackTrace(); } return bitmap; } protected void onPostExecute(Bitmap image) { if (image != null) { img.setImageBitmap(image); // pDialog.dismiss(); } else { // pDialog.dismiss(); Toast.makeText(getContext(), "Image Does Not exist or Network Error", Toast.LENGTH_SHORT).show(); } } } } 

    è la mia immagine di lista

  • TransformException duplica la voce per common.annotations.Beta
  • Come leggere il numero ID della scheda SD?
  • Facebook SDK dos non restituisce un'email
  • Invio di dati dal servizio all'attività
  • select il valore distinto in sqlite android
  • Gestione dei pulsanti all'interno delle notifiche android
  • One Solution collect form web for “Android mentre utilizza l'image cardview sta caricando molto pigro”

    Prova a scalare la tua bitmap per abbassare la sua risoluzione effettiva, ho usato i seguenti codici per ridurre le size di bitmap .

     int nh = (int) (bitmap.getHeight() * (512.0 / bitmap.getWidth())); Bitmap scaled = Bitmap.createScaledBitmap(bitmap, 512, nh, true); 

    Per il tuo caso, aggiungi i seguenti codici nella class adattatore del metodo doInBackground

     try { bitmap = BitmapFactory.decodeStream((InputStream) new URL(args[0]).getContent()); int nh = (int) (bitmap.getHeight() * (512.0 / bitmap.getWidth())); Bitmap scaled = Bitmap.createScaledBitmap(bitmap, 512, nh, true); } catch (Exception e) { e.printStackTrace(); } return scaled; 

    Ritorna bitmap scalato invece che bitmap originale.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.