下载图像我要创建一个简单的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”
什么是''响应的价值? –
在catch块中取消注释'ex.printStackTrace();'并在logcat中查看它打印的内容。 –
没有logcat,我只能告诉你,主要是它的NetworkOnMainThread异常。您需要使用AsyncTask来执行此操作。 –