Created
April 15, 2013 14:37
-
-
Save vinigracindo/5388567 to your computer and use it in GitHub Desktop.
Android Download Image from URL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package utils; | |
import java.io.FilterInputStream; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.net.HttpURLConnection; | |
import java.net.MalformedURLException; | |
import java.net.URL; | |
import java.net.URLConnection; | |
import org.apache.http.HttpEntity; | |
import org.apache.http.HttpResponse; | |
import org.apache.http.HttpStatus; | |
import org.apache.http.client.methods.HttpGet; | |
import android.graphics.Bitmap; | |
import android.graphics.BitmapFactory; | |
import android.graphics.Matrix; | |
import android.graphics.drawable.BitmapDrawable; | |
import android.graphics.drawable.Drawable; | |
import android.net.http.AndroidHttpClient; | |
import android.util.Log; | |
import android.widget.ImageView; | |
import android.widget.LinearLayout; | |
public abstract class ImageResource { | |
public static void scaleImage(ImageView view, int XboundBoxInDp, int YboundBoxInDp) | |
{ | |
// Get the ImageView and its bitmap | |
Drawable drawing = view.getDrawable(); | |
Bitmap bitmap = ((BitmapDrawable)drawing).getBitmap(); | |
// Get current dimensions | |
int width = bitmap.getWidth(); | |
int height = bitmap.getHeight(); | |
// Determine how much to scale: the dimension requiring less scaling is | |
// closer to the its side. This way the image always stays inside your | |
// bounding box AND either x/y axis touches it. | |
float xScale = ((float) XboundBoxInDp) / width; | |
float yScale = ((float) YboundBoxInDp) / height; | |
float scale = (xScale <= yScale) ? xScale : yScale; | |
// Create a matrix for the scaling and add the scaling data | |
Matrix matrix = new Matrix(); | |
matrix.postScale(scale, scale); | |
// Create a new bitmap and convert it to a format understood by the ImageView | |
Bitmap scaledBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true); | |
BitmapDrawable result = new BitmapDrawable(scaledBitmap); | |
width = scaledBitmap.getWidth(); | |
height = scaledBitmap.getHeight(); | |
// Apply the scaled bitmap | |
view.setImageDrawable(result); | |
// Now change ImageView's dimensions to match the scaled image | |
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) view.getLayoutParams(); | |
params.width = width; | |
params.height = height; | |
view.setLayoutParams(params); | |
} | |
public static Drawable LoadImageFromWebOperations(String url) { | |
try { | |
InputStream is = (InputStream) new URL(url).getContent(); | |
Drawable d = Drawable.createFromStream(is, "src name"); | |
return d; | |
} catch (Exception e) { | |
return null; | |
} | |
} | |
public static Bitmap loadImage(String imageUrl) { | |
Bitmap bitmap = null; | |
try { | |
//bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent()); | |
URL url = new URL(imageUrl); | |
bitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream()); | |
} catch (MalformedURLException e) { | |
e.printStackTrace(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
return bitmap; | |
} | |
public static Bitmap downloadImage(String urlImage) { | |
Bitmap bitmap = null; | |
InputStream stream = null; | |
BitmapFactory.Options bmOptions = new BitmapFactory.Options(); | |
bmOptions.inSampleSize = 1; | |
try { | |
URL url = new URL(urlImage); | |
stream = getHttpConnection(url); | |
bitmap = BitmapFactory. | |
decodeStream(new FlushedInputStream(stream), null, bmOptions); | |
stream.close(); | |
} catch (IOException e1) { | |
e1.printStackTrace(); | |
} | |
return bitmap; | |
} | |
private static InputStream getHttpConnection(URL url) | |
throws IOException { | |
InputStream stream = null; | |
URLConnection connection = url.openConnection(); | |
try { | |
HttpURLConnection httpConnection = (HttpURLConnection) connection; | |
httpConnection.setRequestMethod("GET"); | |
httpConnection.connect(); | |
if (httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK) { | |
stream = httpConnection.getInputStream(); | |
} | |
} catch (Exception ex) { | |
ex.printStackTrace(); | |
} | |
return stream; | |
} | |
public static Bitmap downloadImage2(String fileUrl){ | |
Bitmap bmImg = null; | |
URL myFileUrl =null; | |
try { | |
myFileUrl= new URL(fileUrl); | |
} catch (MalformedURLException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
try { | |
HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection(); | |
conn.setDoInput(true); | |
conn.connect(); | |
InputStream is = conn.getInputStream(); | |
bmImg = BitmapFactory.decodeStream(new FlushedInputStream(is)); | |
} catch (IOException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
return bmImg; | |
} | |
public static Bitmap getImageFromUrl(String urlImage) { | |
InputStream in; | |
Bitmap bmp = null; | |
try { | |
in = new java.net.URL(urlImage).openStream(); | |
bmp = BitmapFactory.decodeStream(new FlushedInputStream(in)); | |
} catch (MalformedURLException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} catch (IOException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
return bmp; | |
} | |
public static Bitmap grabImageFromUrl(String imageUrlInput) | |
{ | |
Bitmap bmp = null; | |
try { | |
String url1 = imageUrlInput; | |
URL ulrn = new URL(url1); | |
HttpURLConnection con = (HttpURLConnection)ulrn.openConnection(); | |
InputStream is = con.getInputStream(); | |
bmp = BitmapFactory.decodeStream(is); | |
if (null == bmp) System.out.println("The Bitmap is NULL"); | |
con.disconnect(); | |
} catch(Exception e) { | |
} | |
return bmp; | |
} | |
public static Bitmap downloadBitmap44(String url) { | |
final AndroidHttpClient client = AndroidHttpClient.newInstance("Android"); | |
final HttpGet getRequest = new HttpGet(url); | |
try { | |
HttpResponse response = client.execute(getRequest); | |
final int statusCode = response.getStatusLine().getStatusCode(); | |
if (statusCode != HttpStatus.SC_OK) { | |
Log.w("ImageDownloader", "Error " + statusCode + " while retrieving bitmap from " + url); | |
return null; | |
} | |
final HttpEntity entity = response.getEntity(); | |
if (entity != null) { | |
InputStream inputStream = null; | |
try { | |
inputStream = entity.getContent(); | |
final Bitmap bitmap = BitmapFactory.decodeStream(new FlushedInputStream(inputStream)); | |
return bitmap; | |
} finally { | |
if (inputStream != null) { | |
inputStream.close(); | |
} | |
entity.consumeContent(); | |
} | |
} | |
} catch (Exception e) { | |
// Could provide a more explicit error message for IOException or IllegalStateException | |
getRequest.abort(); | |
Log.w("ImageDownloader", "Error while retrieving bitmap from " + url + "-" + e.toString()); | |
} finally { | |
if (client != null) { | |
client.close(); | |
} | |
} | |
return null; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment