Здравствуйте, я создаю приложение, которое заполняет список с данными из MySQL.
Дело в том, что отображаются все остальные данные, кроме изображения. Я использую этот метод, чтобы получить изображение из 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 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 Вот
Есть идеи?? Заранее спасибо!!!
Я наконец получил это с помощью этой библиотеки из Этот парень
Modyfing мой адаптер, как
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;
}
Вместо растрового изображения, которое я использовал в конструкторе, я теперь использую строку, и она работает как шарм !!!
Других решений пока нет …