2014-09-27 11 views
0

Я хочу использовать Google Static Map API и загружать растровое изображение своего местоположения и показывать его в своем приложении в качестве изображения, я написал этот код, но мое приложение остановилось, в чем проблема?Как показать растровое изображение из Uri в Android?

код:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my); 

    String URL = "http://maps.google.com/maps/api/staticmap?center=48.858235,2.294571&zoom=15&size=200x200&sensor=false"; 
    Bitmap bmp = null; 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpGet request = new HttpGet(URL); 

    InputStream in = null; 
    try { 
     in = httpclient.execute(request).getEntity().getContent(); 
     bmp = BitmapFactory.decodeStream(in); 
     in.close(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    ImageView vi=(ImageView)findViewById(R.id.salak); 
    vi.setImageBitmap(bmp); 


} 

я просто написал эту часть кода в OnCreate() функции и имеют ImageViewer в XML-файл, чтобы показать изображение, но моя программа не работала Corectly, как может Я исправляю эту проблему?

+1

Вы должны опубликовать свой журнал ошибок, мне кажется, что вы можете сбиваться с сети из-за исключения основного потока, вам, вероятно, стоит заглянуть в задачу Async, чтобы сделать вашу сеть в фоновом потоке – JRowan

ответ

0

Как отмечает JRowan, наиболее вероятной причиной вашей проблемы является то, что вы пытаетесь выполнять сетевые вызовы в основном потоке, что недопустимо.

Смотреть это: http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

Самый простой способ загрузить ImageView из Ури использует библиотеку площадь Пикассо, который можно найти здесь:

http://square.github.io/picasso/

Один вы его загрузили и установили , тогда вы можете загрузить свой ImageView следующим образом:

Picasso.with(context).load(yourUrl).into(yourImageView); 

Если запустите в действии, вы можете просто использовать this, как контекст.

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