Skip to content

Commit

Permalink
Scrolling issue and optimization
Browse files Browse the repository at this point in the history
  • Loading branch information
bhavesh-hirpara committed Apr 3, 2014
1 parent 90575e3 commit cc37b4c
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 28 deletions.
Binary file removed libs/universal-image-loader-1.8.0.jar
Binary file not shown.
Binary file added libs/universal-image-loader-1.9.0.jar
Binary file not shown.
4 changes: 2 additions & 2 deletions project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-7
android.library=true
target=android-8
android.library=false
Binary file added res/drawable-mdpi/no_media.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed res/drawable-mdpi/no_media.png
Binary file not shown.
62 changes: 42 additions & 20 deletions src/com/luminous/pick/CustomGalleryActivity.java
Original file line number Diff line number Diff line change
@@ -1,28 +1,33 @@
package com.luminous.pick;

import java.io.File;
import java.util.ArrayList;
import java.util.Collections;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Looper;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;

import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.memory.impl.WeakMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;

import java.util.ArrayList;
import java.util.Collections;
import com.nostra13.universalimageloader.core.assist.PauseOnScrollListener;
import com.nostra13.universalimageloader.utils.StorageUtils;

public class CustomGalleryActivity extends Activity {

Expand All @@ -34,9 +39,9 @@ public class CustomGalleryActivity extends Activity {
Button btnGalleryOk;

String action;
private ImageLoader imageLoader;
private ImageLoader imageLoader;

@Override
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
Expand All @@ -46,29 +51,46 @@ public void onCreate(Bundle savedInstanceState) {
if (action == null) {
finish();
}
initImageLoader();
initImageLoader();
init();
}

private void initImageLoader() {
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheOnDisc().imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.bitmapConfig(Bitmap.Config.RGB_565).build();
ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(
this).defaultDisplayImageOptions(defaultOptions).memoryCache(
new WeakMemoryCache());
private void initImageLoader() {
try {
String CACHE_DIR = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/.temp_tmp";
new File(CACHE_DIR).mkdirs();

File cacheDir = StorageUtils.getOwnCacheDirectory(getBaseContext(),
CACHE_DIR);

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheOnDisc(true).imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565).build();
ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(
getBaseContext())
.defaultDisplayImageOptions(defaultOptions)
.discCache(new UnlimitedDiscCache(cacheDir))
.memoryCache(new WeakMemoryCache());

ImageLoaderConfiguration config = builder.build();
imageLoader = ImageLoader.getInstance();
imageLoader.init(config);

} catch (Exception e) {

ImageLoaderConfiguration config = builder.build();
imageLoader = ImageLoader.getInstance();
imageLoader.init(config);
}
}
}

private void init() {

handler = new Handler();
gridGallery = (GridView) findViewById(R.id.gridGallery);
gridGallery.setFastScrollEnabled(true);
adapter = new GalleryAdapter(getApplicationContext(), imageLoader);
PauseOnScrollListener listener = new PauseOnScrollListener(imageLoader,
true, true);
gridGallery.setOnScrollListener(listener);

if (action.equalsIgnoreCase(Action.ACTION_MULTIPLE_PICK)) {

Expand Down Expand Up @@ -183,9 +205,9 @@ private ArrayList<CustomGallery> getGalleryPhotos() {
e.printStackTrace();
}

// show newest photo at beginning of the list
// show newest photo at beginning of the list
Collections.reverse(galleryList);
return galleryList;
return galleryList;
}

}
21 changes: 15 additions & 6 deletions src/com/luminous/pick/GalleryAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import android.widget.ImageView;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener;

public class GalleryAdapter extends BaseAdapter {

Expand All @@ -25,7 +26,7 @@ public GalleryAdapter(Context c, ImageLoader imageLoader) {
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mContext = c;
this.imageLoader = imageLoader;
clearCache();
clearCache();
}

@Override
Expand Down Expand Up @@ -114,13 +115,14 @@ public void changeSelection(View v, int position) {
data.get(position).isSeleted = true;
}

((ViewHolder) v.getTag()).imgQueueMultiSelected.setSelected(data.get(position).isSeleted);
((ViewHolder) v.getTag()).imgQueueMultiSelected.setSelected(data
.get(position).isSeleted);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder;
final ViewHolder holder;
if (convertView == null) {

convertView = infalter.inflate(R.layout.gallery_item, null);
Expand All @@ -142,12 +144,19 @@ public View getView(int position, View convertView, ViewGroup parent) {
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.imgQueue.setTag(position);
holder.imgQueue.setTag(position);

try {
holder.imgQueue.setImageResource(R.drawable.no_media);

imageLoader.displayImage("file://" + data.get(position).sdcardPath,
holder.imgQueue);
holder.imgQueue, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
holder.imgQueue
.setImageResource(R.drawable.no_media);
super.onLoadingStarted(imageUri, view);
}
});

if (isActionMultiplePick) {

Expand Down

0 comments on commit cc37b4c

Please sign in to comment.