asynctask to download images then load images into horizontal gallery


Last Updated: 2012-12-28 08:12:33
  1. j0lenee

    j0lenee New Member

    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]

    Advertisement

Share This Page