Android, Come eseguire l'istallazione di Universal Image Loader?

Nel mio progetto ho una vista griglia che contiene immagini. Sulla base della mia ricerca, il progetto Universal Image Loader è stato progettato per scaricare immagini in background. Quindi a base di campione ho impostato la mia scheda. Questo è il codice che ho scritto:

package cam.astro.mania.adapters; import java.io.File; import java.util.ArrayList; import com.astro.mania.activities.Contestants_Photo; import com.astro.mania.activities.R; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache; import com.nostra13.universalimageloader.core.DecodingType; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.ImageLoadingListener; import android.app.ProgressDialog; import android.content.Context; import android.graphics.Bitmap; import android.os.Environment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ProgressBar; public class ContestantsPhotoAdapter extends BaseAdapter { private Context context; private LayoutInflater myInflater; private Bitmap[] bitmapList; private Bitmap bitmap; private ArrayList<String> ListOfURLs; private ImageLoader imageLoader; private ProgressDialog progressBar; private File cacheDir; private ImageLoaderConfiguration config; private DisplayImageOptions options; public ContestantsPhotoAdapter(Context c) { context = c; myInflater = LayoutInflater.from(c); // Get singleton instance of ImageLoader imageLoader = ImageLoader.getInstance(); } public void setImageURLs(ArrayList<String> list){ ListOfURLs = list; for(String str: ListOfURLs) Log.i("URL Address>>>>", str); cacheDir = new File(Environment.getExternalStorageDirectory(), "UniversalImageLoader/Cache"); // Create configuration for ImageLoader config = new ImageLoaderConfiguration.Builder(context) .maxImageWidthForMemoryCache(800) .maxImageHeightForMemoryCache(800) .httpConnectTimeout(5000) .httpReadTimeout(30000) .threadPoolSize(5) .threadPriority(Thread.MIN_PRIORITY + 2) .denyCacheImageMultipleSizesInMemory() .memoryCache(new UsingFreqLimitedMemoryCache(2000000)) // You can pass your own memory cache implementation .discCache(new UnlimitedDiscCache(cacheDir)) // You can pass your own disc cache implementation .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) .build(); // Creates display image options for custom display task options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.icon_loading) .showImageForEmptyUrl(R.drawable.icon_remove) .cacheInMemory() .cacheOnDisc() .decodingType(DecodingType.MEMORY_SAVING) .build(); // Initialize ImageLoader with created configuration. Do it once. imageLoader.init(config); } @Override public int getCount() { return ListOfURLs.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent){ ViewHolder holder; if (convertView == null) { convertView = myInflater.inflate(R.layout.grid_contestantsphoto, null); holder = new ViewHolder(); holder.ivIcon = (ImageView) convertView.findViewById(R.id.imvContestantsPhoto_icon); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } // holder.ivIcon.setImageBitmap(bitmapList[position]); String imageUrl = ListOfURLs.get(position); // Load and display image imageLoader.displayImage(imageUrl, holder.ivIcon, options, new ImageLoadingListener() { @Override public void onLoadingStarted() { showLoading(); } @Override public void onLoadingFailed() { stopLoading(); } @Override public void onLoadingComplete() { stopLoading(); } }); return convertView; } static class ViewHolder { ImageView ivIcon; } /*----------------------------------------------------------------------------------- * Showing / Stopping progress dialog which is showing loading animation * ---------------------------------------------------------------------------------*/ private void showLoading(){ progressBar = ProgressDialog.show(context, "", ""); progressBar.setContentView(R.layout.anim_loading); progressBar.setCancelable(true); final ImageView imageView = (ImageView) progressBar.findViewById(R.id.blankImageView); Animation rotation = AnimationUtils.loadAnimation(context, R.anim.rotate); imageView.startAnimation(rotation); } private void stopLoading() { if(progressBar.isShowing()) progressBar.dismiss(); } } 

Cosa ho fatto? 1) Ho scaricato universal-image-loader-1.2.3.jar e l' ho inserito nella cartella MY_PROJECT / lib, quindi ho aggiunto questo file jar nel path di build java immettere qui la descrizione dell'immagine

  • Il divisore orizzontale superiore e inferiore non si presenta in ListView
  • Come get la data dal picker di data in android?
  • Riferimento ad un'istanza di inclusione da una class interiore
  • Android come impostare il fuso orario attraverso l'applicazione
  • Ricevi intenti "android.settings.APPLICATION_DETAILS_SETTINGS" per la mia applicazione
  • Come utilizzare View Stub in android
  • 2) Perché per la raccolta di immagini, questa libreria deve avere accesso all'archivio locale, quindi ho aggiunto <uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE"/> per visualizzare il file.

    3) Ora, quando imageLoader = ImageLoader.getInstance(); , l'applicazione si blocca e punti a imageLoader = ImageLoader.getInstance(); . Il messaggio di Logcat è:

     dalvikvm: Could not find class 'cam.astro.mania.adapters.ContestantsPhotoAdapter$1', referenced from method cam.astro.mania.adapters.ContestantsPhotoAdapter.getView AndroidRuntime: java.lang.NoClassDefFoundError: com.nostra13.universalimageloader.core.ImageLoader AndroidRuntime: at cam.astro.mania.adapters.ContestantsPhotoAdapter.<init>(ContestantsPhotoAdapter.java:50) 

    Sulla base della mia ricerca (ad esempio qui ) ho scoperto che questo messaggio " viene quando Java Virtual Machine non è in grado di trovare una class particolare in fase di runtime disponibile durante il tempo di compilazione " .

  • Android: Come evitare l'intestazione dal scorrimento in listview, android?
  • Come faccio a creare un "licenza aggiuntiva" per la mia applicazione Android?
  • Come posso utilizzare MS Visual Studio per lo sviluppo di Android?
  • HTML5 Audio: Chrome su Android non riproduce automaticamente la canzone contro Chrome sul PC
  • Convertire la data di Android Strings agli oggetti data
  • smoothScrollToPosition dopo notifyDataSetChanged non funziona in android
  • 2 Solutions collect form web for “Android, Come eseguire l'istallazione di Universal Image Loader?”

    Quando rimuovo il file jar dal path di class Java e cambiare il nome della cartella da "lib" a "libs", il file jar aggiunge automaticamente a Android Dependencies. Ora, tutto va bene

    Assicurarsi di controllare il jar sotto la scheda "Ordine ed Esport" dopo aver aggiunto il jar esterno.

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