• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps asynctask to download images then load images into horizontal gallery

j0lenee

Lurker
Dec 28, 2012
1
0
I am using asynctask to download images and then once it has finished downloading, it should load the images into my horizontal gallery. is it possible?

for now i have tried and the images are downloaded and saved but it doesnt show.

[HIGH]@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

new downloadFile().execute();
gallery = (Gallery) findViewById(R.id.examplegallery);
gallery.setAdapter(new AddImgAdp(this));

gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
// Displaying the position when the gallery item in clicked
Toast.makeText(MainActivity.this, "Position=" + position, Toast.LENGTH_SHORT).show();
}
});

}

/**
* Background Async Task to Load all product by making HTTP Request
* */
class downloadFile extends AsyncTask<String, String, String> {

/**
* getting all magazines from url
* */
protected String doInBackground(String... args) {
URL myFileUrl = null;

// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
JSONObject json = jParser.makeHttpRequest(url_login, "GET", params);

// Check your log cat for JSON reponse
Log.d("All Products: ", json.toString());

try {
// Checking for SUCCESS TAG
int success = json.getInt(TAG_SUCCESS);

if (success == 1) {
// products found
// Getting Array of Products
mag = json.getJSONArray(TAG_MAGAZINE);

for (int i = 0; i < mag.length(); i++) {
JSONObject c = mag.getJSONObject(i);

// Storing each json item in variable
String magLink = c.getString(TAG_MAGAZINE_URL);
String magThumb = c.getString(TAG_MAGAZINE_THUMBNAIL);
//String magazineIssue = c.getString(TAG_MAGAZINE_ISSUE);

urlList.add(magLink);
//urlList.add(magazineIssue);
thumbnailList.add(magThumb);

System.out.println(thumbnailList);
}
}
else {

}
} catch (JSONException e) {
e.printStackTrace();
}


for (int i = 0; i < thumbnailList.size(); i ++)
{
thumbnail = thumbnailList.get(i).toString();
Log.d("thumbnail", thumbnail);
number = i;
try {
myFileUrl = new URL(thumbnail); // RETRIEVE IMAGE URL
}
catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream in = conn.getInputStream();
Log.i("im connected", "Download");
bmImg = BitmapFactory.decodeStream(in);

File filename;
try {
// GET EXTERNAL STORAGE, SAVE FILE THERE
File storagePath = new File(Environment.getExternalStorageDirectory(),"Covers");
storagePath.mkdirs();

filename = new File(storagePath + "/photo"+number+".jpg");
FileOutputStream out = new FileOutputStream(filename);
bmImg.compress(Bitmap.CompressFormat.JPEG, 90, out);

out.flush();
out.close();
MediaStore.Images.Media.insertImage(getContentResolver(),filename.getAbsolutePath(), filename.getName(),
filename.getName());



// displayImage();
} catch (Exception e) {
e.printStackTrace();
}



} catch (IOException e) {
e.printStackTrace();
}

}

return null;
}

/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute() {

runOnUiThread(new Runnable() {
public void run() {

ArrayList<String> mStringList= new ArrayList<String>();
File strPath = new File(Environment.getExternalStorageDirectory() + "/Covers");
int lists = strPath.listFiles().length;
Log.d("number of items in array ",String.valueOf(lists));

File yourDir = new File(strPath, "");
for (File f : yourDir.listFiles()) {
if (f.isFile())
{
String name = f.getName();
String v = strPath + "/" + name;
mStringList.add(v);
}
}

mImageIds = new String[mStringList.size()];
mImageIds = mStringList.toArray(mImageIds);

for(int a = 0; a < mImageIds.length ; a++){
Log.d("string is",(mImageIds[a]));
}


}



});
}
}

public class AddImgAdp extends BaseAdapter {
int GalItemBg;
private Context cont;

public AddImgAdp(Context c) {
cont = c;
TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme);
GalItemBg = typArray.getResourceId(R.styleable.GalleryTheme_android_galleryItemBackground, 0);
typArray.recycle();
}
public int getCount() {
return mImageIds.length;
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
ImageView imgView = new ImageView((Context) cont);

imgView.setImageDrawable(Drawable.createFromPath(mImageIds[position]));

// Fixing width & height for image to display
imgView.setLayoutParams(new Gallery.LayoutParams(80, 70));
imgView.setScaleType(ImageView.ScaleType.FIT_XY);
imgView.setBackgroundResource(GalItemBg);

return imgView;
}
}

}[/HIGH]
 

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones