1. Download our Official Android App: Forums for Android!

Apps asynctask to download images then load images into horizontal gallery

Discussion in 'Android Development' started by j0lenee, Dec 28, 2012.

  1. j0lenee

    j0lenee Lurker
    Thread Starter
    Rank:
    None
    Points:
    5
    Posts:
    1
    Joined:
    Dec 28, 2012

    Dec 28, 2012
    1
    0
    5
    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

Loading...