2015-07-30 9 views
1

Я хочу прочитать изображение с сервера с помощью студии android через эмулятор. Пожалуйста, помогите мне, потому что я пробовал много способов, но еще не успел.Как читать изображение с сервера через эмулятор

Мой мир кода выглядит следующим образом.

Код 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; 
    } 
} 

Пожалуйста, помогите мне.

+1

использование Пикассо это самый простой и лучший способ –

+0

Спасибо, но вы можете дать мне мир кода, пожалуйста? –

ответ

1

Используйте Picasso для загрузки и кеширования изображений. Добавьте это в свои зависимости, используя compile 'com.squareup.picasso:picasso:2.5.2', если вы используете студию Android, иначе добавьте банку в свои библиотеки.

это одна строка кода для управления всем:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 

просто передать свой адрес, и вы сделали.

+0

Хорошо, позвольте мне скачать и проверить, тогда я вернусь. –

+0

@MakameSharif sure –

+0

@ MakameSharif.Если эта помощь тогда может у вас принять ответ. –

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); 
    } 
} 
+0

Спасибо вам, это работает нормально. –

+0

Ваше приветствие Бро ... если это полезно для вас, тогда дайте мне право на мой ответ. :) –

Смежные вопросы