我想通过模拟器使用android studio从服务器读取图像。请任何人帮助我,因为我尝试了很多方法,但还没有成功。
我的代码和平是这样的。
在Acitivity.java
文件中,代码就是这样。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=(Button)findViewById(R.id.button);
imageView=(ImageView)findViewById(R.id.imageView);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
iv = (ImageView) findViewById(R.id.imageView);
bitmap = getBitmapFromURL("http://10.0.2.2/img.bmp");
iv.setImageBitmap(bitmap);
}
});
}
我使用此Function
。
public Bitmap getBitmapFromURL(String src){
try{
URL url= new URL(src);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input=(connection).getInputStream();
Bitmap myBitmap= BitmapFactory.decodeStream(input);
return myBitmap;
}catch (Exception e){
e.printStackTrace();
Toast.makeText(this,e.getMessage(),Toast.LENGTH_LONG).show();
return null;
}
}
请任何人帮助我。
答案 0 :(得分:1)
使用Picasso下载和缓存图像。如果您使用的是android工作室,请使用compile 'com.squareup.picasso:picasso:2.5.2'
在依赖项中添加此项,否则在您的库中添加jar。
它是管理一切的单行代码:
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
只需通过您的网址即可完成。
答案 1 :(得分:0)
我最后尝试了很多东西我发现这个我认为这对你有用。试试吧。
在您的活动中执行此操作。
new DownloadImageTask(your_imageview).execute("http://10.0.2.2/img.bmp);
方法是这样的。
public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
bmImage.setImageBitmap(result);
}
}