Java asynchronous upload image example

  • 2020-04-01 02:53:08
  • OfStack


final File imageFile = new File(getCacheDir().getPath() + "/img/" + p.image); 
image.setVisibility(View.GONE); 
view.findViewById(R.id.imageLoading).setVisibility(View.VISIBLE); 
(new AsyncTask<Void, Void, Bitmap>() { 
    @Override 
    protected Bitmap doInBackground(Void... params) { 
        try { 
            Bitmap image; 
            if (!imageFile.exists() || imageFile.length() == 0) { 
                image = BitmapFactory.decodeStream(new URL( 
                        "http://example.com/images/" 
                                + p.image).openStream()); 
                image.compress(Bitmap.CompressFormat.JPEG, 85, 
                        new FileOutputStream(imageFile)); 
                image.recycle(); 
            } 
            image = BitmapFactory.decodeFile(imageFile.getPath(), 
                bitmapOptions); 
            return image; 
        } catch (MalformedURLException ex) { 
            // TODO Auto-generated catch block 
            ex.printStackTrace(); 
            return null; 
        } catch (IOException ex) { 
            // TODO Auto-generated catch block 
            ex.printStackTrace(); 
            return null; 
        } 
    } 

    @Override 
    protected void onPostExecute(Bitmap image) { 
        if (view.getTag() != p) // The view was recycled. 
            return; 
            view.findViewById(R.id.imageLoading).setVisibility( 
                View.GONE); 
        view.findViewById(R.id.image) 
                .setVisibility(View.VISIBLE); 
        ((ImageView) view.findViewById(R.id.image)) 
                .setImageBitmap(image); 
    } 
}).execute();


Related articles: