如何通过模拟器从服务器读取图像

时间:2015-07-30 12:14:58

标签: android

我想通过模拟器使用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;
    }
}

请任何人帮助我。

2 个答案:

答案 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);
    }
}