Skip to content

Instantly share code, notes, and snippets.

@cbedoy
Last active August 29, 2015 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cbedoy/0b96946300211f9ffa6e to your computer and use it in GitHub Desktop.
Save cbedoy/0b96946300211f9ffa6e to your computer and use it in GitHub Desktop.
ApplicationLoaderWithImageLoaderConfiguration
import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.cbedoy.apprende.R;
import com.cbedoy.apprende.activity.ApplicationLoader;
import com.cbedoy.apprende.service.BlurService;
import com.cbedoy.apprende.service.ImageService;
import com.cbedoy.apprende.service.InjectionManager;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
import java.util.HashMap;
import java.util.List;
/**
* Created by Carlos on 19/10/2014.
*/
public class CustomViewCell extends BaseAdapter
{
private List<Object> viewModel;
private Context context;
private LayoutInflater layoutInflater;
public CustomViewCell(Context context, LayoutInflater layoutInflater, List<Object> viewModel)
{
this.layoutInflater = layoutInflater;
this.context = context;
this.viewModel = viewModel;
}
@Override
public int getCount() {
return viewModel.size();
}
@Override
public Object getItem(int i) {
return viewModel.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup viewGroup) {
final ViewHolder viewHolder;
if(convertView == null)
{
convertView = layoutInflater.inflate(R.layout.app_category_cell, null);
viewHolder = new ViewHolder();
viewHolder.imageCell = (ImageView) convertView.findViewById(R.id.app_category_cell_image);
viewHolder.textCell = (TextView) convertView.findViewById(R.id.app_category_cell_name);
convertView.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) convertView.getTag();
}
HashMap<String, Object> currentModel = (HashMap<String, Object>) viewModel.get(position);
String string = InjectionManager.MEDIA_URL + ((HashMap) (currentModel.get("fields"))).get("thumbnail").toString();
ImageLoader.getInstance().displayImage(
string,
viewHolder.imageCell,
ApplicationLoader.options,
new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
super.onLoadingComplete(imageUri, view, loadedImage);
//Bitmap bitmap = BlurService.getInstance().performRequestBlurByImage(loadedImage);
//viewHolder.imageCell.setImageBitmap(bitmap);
}
});
viewHolder.textCell.setText(((HashMap) currentModel.get("fields")).get("name").toString());
viewHolder.textCell.setTypeface(ImageService.boldFont);
return convertView;
}
class ViewHolder{
ImageView imageCell;
TextView textCell;
}
}
package com.cbedoy.apprende.activity;
import android.app.Application;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.os.Handler;
import com.cbedoy.apprende.R;
import com.cbedoy.apprende.service.TypefaceService;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
/**
* Created by Carlos on 18/10/2014.
*/
public class ApplicationLoader extends Application
{
public static volatile Context mainContext = null;
public static volatile Handler mainHandler = null;
public static volatile DisplayImageOptions options;
public static volatile ImageLoaderConfiguration config;
@Override
public void onCreate() {
super.onCreate();
mainContext = getApplicationContext();
mainHandler = new Handler(mainContext.getMainLooper());
TypefaceService.overrideFont(getApplicationContext(), "SERIF", "fonts/Roboto-Light.ttf");
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher)
.showImageForEmptyUri(R.drawable.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.considerExifParams(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.diskCacheFileNameGenerator(new Md5FileNameGenerator())
.diskCacheSize(5 * 1024 * 1024) // 50 Mb
.tasksProcessingOrder(QueueProcessingType.LIFO)
.writeDebugLogs() // Remove for release app
.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);
}
public static int getAppVersion() {
try {
PackageInfo packageInfo = mainContext.getPackageManager().getPackageInfo(mainContext.getPackageName(), 0);
return packageInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException("Could not get package name: " + e);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment