Я хочу создать простое приложение для Android, которое получает изображение из интернета Код активности выглядит следующим образом:андроида - (HttpURLConnection) загрузки изображения из Интернета
import java.io.IOException;
import java.io.InputStream;
import android.support.v7.app.ActionBarActivity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.Toast;
public class BitmapDemo extends ActionBarActivity {
//bikin objek image view nya
ImageView imageview;
private Bitmap downloadImage(String url){
Bitmap bitmap = null;
InputStream in = null;
Koneksi koneksi = new Koneksi(); //class untuk koneksi nya
try{
in = koneksi.OpenHttpConnection(url);
bitmap = BitmapFactory.decodeStream(in);
in.close();
}
catch(IOException ex){
Toast.makeText(this, ex.getLocalizedMessage(),Toast.LENGTH_LONG).show();
ex.printStackTrace();
}
return bitmap;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bitmap_demo);
//download image nya
//Bitmap bitmap = downloadImage("http://10.0.3.2/mp/tux2.jpeg"); //localhost
Bitmap bitmap = downloadImage("http://infinitejest.wallacewiki.com/david-foster-wallace/images/a/ab/Nasa_Emblem.jpg"); //localhost
//Bitmap bitmap = downloadImage("nama saya luki"); //localhost
imageview = (ImageView)findViewById(R.id.imageview);
imageview.setImageBitmap(bitmap);
}
И для связи, я создал класс называется Koneksi.java (называемые в деятельности по линии 22
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
//import org.apache.http.HttpConnection;
public class Koneksi {
public InputStream OpenHttpConnection(String urlString) throws IOException{
InputStream in = null;
int response = -1;
URL url = new URL(urlString);
final URLConnection conn = url.openConnection();
if(!(conn instanceof HttpURLConnection)){
throw new IOException("String yang dimasukkan bukan alamat web");
}
try{
HttpURLConnection httpCon = (HttpURLConnection) conn;
httpCon.setAllowUserInteraction(false);
httpCon.setInstanceFollowRedirects(true);
httpCon.setRequestMethod("GET");
httpCon.connect();
//apakah respon berhasil
response = httpCon.getResponseCode();
if(response == HttpURLConnection.HTTP_OK){ //sama dengan 200 ga ya
in = httpCon.getInputStream();
}
}
catch(Exception ex){
//ex.printStackTrace();
throw new IOException("koneksi error");
}
return in;
}
}
Когда я выполнить приложение, улов на Koneksi.java броски, говоря «koneksi ошибки». Могу ли я что-то отсутствую?
Примечание: я уже добавить «android.permission.ACCESS_NETWORK_STATE», а также «android.permission.INTERNET» в проявленном
Что такое значение '' ответа? –
uncomment 'ex.printStackTrace();' в блоке catch и посмотреть в logcat, что он печатает. –
Без logcat я могу просто сказать вам, что в основном это исключение NetworkOnMainThread. Для этого вам необходимо использовать AsyncTask. –