Soru & Cevap

Threadlerle View update etme ...

11.04.2017 - 11:38

Harita markerı için bir layout yarattım ve setInfoWindow adapter ile bu layout u inflate ettim.

   

 final View v = getActivity().getLayoutInflater().inflate(R.layout.info_marker_window,null);

Daha sonra kullanıcı bu marker a tıkladığında bu viewda o marker ın bulunduğu konumun bilgilerini göstermek istiyorum, adı, adresi, fotografı, gibi. Ancak bu bilgileri serverdan çektigim için thread yardımı ile yapamam gerekiyor. Örneğin fotografı çekmek için async task kullandım şu şekilde;

 new AsyncTask<Void,Void,Bitmap>(){
                            @Override
                            protected Bitmap doInBackground(Void... params) {
                                URL newurl = null;
                                try {
                                    newurl = new URL(customMarker.getVenue().getFoto());
                                } catch (MalformedURLException e) {
                                    e.printStackTrace();
                                }
                                Bitmap mIcon_val = null;
                                try {
                                    mIcon_val=BitmapFactory.decodeStream(newurl.openConnection().getInputStream());
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }
                                return mIcon_val;
                            }
                            @Override
                            protected void onPostExecute(final Bitmap bitmap) {
                               
                                        tvfoto.setImageBitmap(bitmap);
                                
                                super.onPostExecute(bitmap);
                            }}.execute();

Burda bitmap null dönmüyor,debug yaptığımda doğru değer döndürdüğünü görebiliyorm, fakat set işlemi gerçekleşmiyor.

Araştırdığım kadarı ile viewlarla thread kullanımlarında bir sorun var . runOnUIThread kullanmayı da denedim ancak sonuç elde edemedim. Viewları background işlemleri ile nasıl update edebilirim?

2 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-15873-1477252697.png
muhammetcagatay
14.04.2017 - 09:36

bunun için önce resmi indirip bitmapa atamalısın, eskdien download methodu yazıyorduk ama artık kütüphaneler bunu çok kolay yapabiliyor

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

şu kütüphaneyiğ kullanmanı tavsiye ederim