2014-12-27 6 views
0

Здравствуйте, я создаю приложение, которое заполняет список с данными из mysql.Изображение не загружается с url

Дело в том, что отображаются все другие данные, кроме изображения. Я использую этот метод, чтобы получить изображение из URL

public Bitmap getBitmapFromUrl(String src) { 
     try { 
      URL url = new URL(src); 
      HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
      connection.setDoInput(true); 
      connection.connect(); 
      InputStream inputStream = connection.getInputStream(); 
      Bitmap myBitmap = BitmapFactory.decodeStream(inputStream); 
      return myBitmap; 
     } catch (Exception e) { 
      e.printStackTrace(); 
      return null; 
     } 
    } 

тогда мои адаптеры использует setImageBitmap к ImageView как этот

ImageView stockImage = (ImageView)stockView.findViewById(R.id.imagestartinglist); 
      stockImage.setImageBitmap(current.getStockImage()); 

и я получить изображение с JSON как этот

public void ListDrawer() { 
     customList = new ArrayList<StockList>(); 
     try { 
      JSONObject jsonResponse = new JSONObject(jsonResult); 
      JSONArray jsonMainNode = jsonResponse.optJSONArray("metoxes"); 
      for (int i = 0; i < jsonMainNode.length(); i++) { 
       JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); 
       String name = jsonChildNode.optString("name"); 
       String price = jsonChildNode.optString("price"); 
       String price1 = jsonChildNode.optString("price1"); 
       String price2 = jsonChildNode.optString("price2"); 
       String price3 = jsonChildNode.optString("price3"); 
       String price4 = jsonChildNode.optString("price4"); 
       String price5 = jsonChildNode.optString("price5"); 
       String price6 = jsonChildNode.optString("price6"); 
       String price7 = jsonChildNode.optString("price7"); 
       String price8 = jsonChildNode.optString("price8"); 
       String price9 = jsonChildNode.optString("price9"); 
       String price10 = jsonChildNode.optString("price10"); 
       String price11 = jsonChildNode.optString("price11"); 
       String price12 = jsonChildNode.optString("price12"); 
       String price13 = jsonChildNode.optString("price13"); 
       String price14 = jsonChildNode.optString("price14"); 
       String price15 = jsonChildNode.optString("price15"); 

       String image = jsonChildNode.optString("image"); 

       Bitmap bmp = getBitmapFromUrl(image); 

       loipesTimes = new String[]{price1, price2, price3, price4, price5, price6, price7, price8, price9, 
         price10, price11, price12, price13, price14, price15}; 
       customList.add(new StockList(name, price, bmp, loipesTimes)); 
      } 
     } catch (Exception e) { 
      Intent intent1 = new Intent(ListLoaderActivity.this, 
        RefreshActivity.class); 
      startActivity(intent1); 
      ListLoaderActivity.this.finish(); 
     } 

     ArrayAdapter adapter = new MyStocksAdapter(ListLoaderActivity.this, R.layout.list_item, customList); 
     adapter.notifyDataSetChanged(); 
     startList.setAdapter(adapter); 
    } 

мой php-файл для извлечения данных из базы данных mysql - Here

Любой идеи ?? Заранее спасибо!!!

+0

Этот json выглядит отлично, так, как вы читаете URL-адрес. Я не просмотрел код загрузки изображения, но я просто ожидаю, что вы знаете, что делаете. Остальное тоже выглядит отлично. Итак, вы получаете какой-то вывод logcat? – rekire

+0

хорошо я последовал этому примеру от этого парня, и он выглядит хорошо, но я не знаю, что пойдет не так https://www.youtube.com/watch?v=KmYJBhz1gmk –

ответ

0

я, наконец, получил это происходит с помощью этой библиотеки из This Guy

модифицирующий мой адаптер как

ImageView stockImage = (ImageView)stockView.findViewById(R.id.imagestartinglist); 
      Ion.with(stockImage).placeholder(R.drawable.ic_launcher_stock_custom_icon).error(R.drawable.ic_launcher_stock_custom_icon).load(current.getStockImage()); 

Метод я загружать данные, как это:

public void ListDrawer() { 
     customList = new ArrayList<StockList>(); 
     try { 
      JSONObject jsonResponse = new JSONObject(jsonResult); 
      JSONArray jsonMainNode = jsonResponse.optJSONArray("metoxes"); 
      for (int i = 0; i < jsonMainNode.length(); i++) { 
       JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); 
       name = jsonChildNode.optString("name"); 
       price = jsonChildNode.optString("price"); 
       price1 = jsonChildNode.optString("price1"); 
       price2 = jsonChildNode.optString("price2"); 
       price3 = jsonChildNode.optString("price3"); 
       price4 = jsonChildNode.optString("price4"); 
       price5 = jsonChildNode.optString("price5"); 
       price6 = jsonChildNode.optString("price6"); 
       price7 = jsonChildNode.optString("price7"); 
       price8 = jsonChildNode.optString("price8"); 
       price9 = jsonChildNode.optString("price9"); 
       price10 = jsonChildNode.optString("price10"); 
       price11 = jsonChildNode.optString("price11"); 
       price12 = jsonChildNode.optString("price12"); 
       price13 = jsonChildNode.optString("price13"); 
       price14 = jsonChildNode.optString("price14"); 
       price15 = jsonChildNode.optString("price15"); 

       image = jsonChildNode.optString("image"); 

       loipesTimes = new String[]{price1, price2, price3, price4, price5, price6, price7, price8, price9, 
         price10, price11, price12, price13, price14, price15}; 
       customList.add(new StockList(name, price, image, loipesTimes)); 

      } 
     } catch (Exception e) { 
      Intent intent1 = new Intent(ListLoaderActivity.this, 
        RefreshActivity.class); 
      startActivity(intent1); 
      ListLoaderActivity.this.finish(); 
     } 

     ArrayAdapter adapter = new MyStocksAdapter(ListLoaderActivity.this, R.layout.list_item, customList); 
     adapter.notifyDataSetChanged(); 
     startList.setAdapter(adapter); 
    } 

И как каждый элемент должен выглядят следующим образом:

public StockList(String stockCurrentName, String stockCurrentPrice, String stockImage, String[] restPrices) { 
     this.stockCurrentName = stockCurrentName; 
     this.stockCurrentPrice = stockCurrentPrice; 
     this.stockImage = stockImage; 
     this.restPrices = restPrices; 
    } 

Вместо растрового изображения, которое я использовал в конструкторе, теперь я использую строку, и она работает как шарм !!!

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