Load image from internet, in AsyncTask

Load image from internet, in AsyncTask

Load image from internet, in AsyncTask - Hallo sahabat Teknologi Terbaru, Pada Artikel yang anda baca kali ini dengan judul Load image from internet, in AsyncTask, kami telah mempersiapkan artikel ini dengan baik untuk anda baca dan ambil informasi didalamnya. mudah-mudahan isi postingan yang kami tulis ini dapat anda pahami. baiklah, selamat membaca.

Judul : Load image from internet, in AsyncTask
link : Load image from internet, in AsyncTask

Baca juga


Load image from internet, in AsyncTask

This example show how to load image from internet, in background thread using AsyncTask.

Load image from internet
Load image from internet
- First of all, to access internet from your app, you have to modify AndroidManifest.xml to add:
<uses-permission android:name="android.permission.INTERNET"/>

- You cannot access Network in main thread, otherwise error of "android.os.NetworkOnMainThreadException" will be reported. That's why we have to implement AsyncTask to load image in background thread.

- Once image loaded, update UI in main thread (or called UI Thread) in onPostExecute() method.

Example code:
package com.example.androidloadimage;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ImageView;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

public class MainActivity extends Activity {

String targetUrl = "http://goo.gl/qfGTN3";
ImageView image1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image1 = (ImageView)findViewById(R.id.image1);

/*
* error Caused by: android.os.NetworkOnMainThreadException
* if you access internet in Main Thread here!
*/
//Bitmap bmLoadedImage = loadImageFromUrl(targetUrl);
//image1.setImageBitmap(bmLoadedImage);

new LoadImageTask(image1).execute(targetUrl);

}

private class LoadImageTask extends AsyncTask<String, Void, Bitmap>{

ImageView targetImageView;

LoadImageTask(ImageView iv){
targetImageView = iv;
}

@Override
protected Bitmap doInBackground(String... params) {
Bitmap bm = loadImageFromUrl(params[0]);
return bm;
}

@Override
protected void onPostExecute(Bitmap result) {
targetImageView.setImageBitmap(result);
}

}

private Bitmap loadImageFromUrl(String targetUrl){
Bitmap bm = null;

try {
URL url = new URL(targetUrl);
URLConnection connection = url.openConnection();
InputStream inputStream = connection.getInputStream();
bm = BitmapFactory.decodeStream(inputStream);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return bm;
}

}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="android-coding.blogspot.com" />

<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</LinearLayout>



Demikianlah Artikel Load image from internet, in AsyncTask

Sekianlah artikel Load image from internet, in AsyncTask kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.


0 Response to "Load image from internet, in AsyncTask"

Post a Comment