Это мое Json
Кодированный код, что я хочу, я хочу показать изображение и заголовок как в Android
Но я не могу показать изображения
{"lists":
[{"post_title":"kigs",
"post_img":"post_img":"http://truzzinfotech.com/wp-content/uploads/2014/04/19-150x150.jpg"},
{"post_title":"Lacolline",
"post_img":"http://truzzinfotech.com/wp-content/uploads/2014/04/19-150x150.jpg"},
{"post_title":"Cricket",
"post_img":"http://truzzinfotech.com/wp-content/uploads/2014/047-150x150.jpg"},
],
"success":1}
И это мой код Android для получения изображений и заголовка
Открытый класс Портфолио расширяет ListActivity {
// Progress Dialogprivate ProgressDialog pDialog;ImageView image;// Creating JSON Parser object
JSONParser jParser = new JSONParser();
ArrayList<HashMap<String, String>> portfoliosList;
// url to get all products list
private static String url_all_portfolios = "http://truzzinfotech.com/wp-content/themes/truzz/getPortfolio.php";
// JSON Node names
private static final String TAG_SUCCESS = "success";
private static final String TAG_PORTFOLIOS = "lists";
static final String TAG_TITLE = "post_title";
static final String TAG_IMAGE = "post_img";
// products JSONArray
JSONArray lists = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.portfolio);
//ListView lv = getListView();
// Hashmap for ListView
portfoliosList = new ArrayList<HashMap<String, String>>();
// Loading products in Background Thread
new LoadAllPortfolios().execute();image = (ImageView)findViewById(R.id.portImg);
}/**
* Background Sync Task to Load all product by making HTTP Request
* */
class LoadAllPortfolios extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Portfolio.this);
pDialog.setMessage("Loading portfolio. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
//Toast.makeText(getBaseContext(), "Enter in loading" ,Toast.LENGTH_LONG).show();
}
/**
* getting All products from url
* */
protected String doInBackground(String... args) {
// Building Parameters
//Toast.makeText(getBaseContext(), "Enter in doInBackground" ,Toast.LENGTH_LONG).show();
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
JSONObject json = jParser.makeHttpRequest(url_all_portfolios,"GET", params);Log.d("All Products: ", json.toString());
try {
//lists = new JSONArray(TAG_PORTFOLIOS);
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// portfolios found
// Getting Array of portfolios
lists = json.getJSONArray(TAG_PORTFOLIOS);
// c = null;
// looping through All Products
for (int i = 0; i < lists.length(); i++) {
JSONObject c = lists.getJSONObject(i);String title = c.getString(TAG_TITLE);
String image = c.getString(TAG_IMAGE);
Log.d("Item name: ",title);
HashMap<String, String> map = new HashMap<String, String>();
URL url = new URL(image);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoInput(true);
con.connect();
InputStream input = con.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);
//InputStream in = new URL(TAG_IMAGE).openStream();
//bmp = BitmapFactory.decodeStream(in);
map.put(TAG_TITLE, title);
map.put(TAG_IMAGE, image);
//map.put("image", jsonobject.getString("image"));portfoliosList.add(map);
}
} else {
// no products found
// Launch Add New product Activity
Toast.makeText(getBaseContext(), "No Portfolio Found" ,Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// TODO Auto-generated catch block
Toast.makeText(getBaseContext(), "No Data Found" ,Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog after getting all products
pDialog.dismiss();
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(
Portfolio.this, portfoliosList,
R.layout.list_item, new String[] { TAG_TITLE,TAG_IMAGE },
new int[] {R.id.name, R.id.portImg});
// updating listview
setListAdapter(adapter);
}
});
}
}
}
Вы можете использовать библиотеку залпов от Google, она делает большую часть грязных вещей, с которыми приходится сталкиваться во время работы в сети.
com.android.volley.toolbox.NetworkImageView
android:id="@+id/networkImageView"android:layout_width="150dp"android:layout_height="170dp"android:layout_centerHorizontal="true" />
NetworkImageView, если ваш вид изображения является частью списка, он действительно хорошо им управляет
ImageLoader mImageLoader;
NetworkImageView mNetworkImageView;
private static final String IMAGE_URL =
"http://developer.android.com/images/training/system-ui.png";
...
// Get the NetworkImageView that will display the image.
mNetworkImageView = (NetworkImageView) findViewById(R.id.networkImageView);
// Get the ImageLoader through your singleton class.
// mImagaLoader is actually the request Queue of the manages all the caching
// and requesting image from the network in not present in cache
mImageLoader = MySingleton.getInstance(this).getImageLoader();
// Set the URL of the image that should be loaded into this view, and
// specify the ImageLoader that will be used to make the request.
mNetworkImageView.setImageUrl(IMAGE_URL, mImageLoader);
Ссылка :
https://developer.android.com/training/volley/request.html
Ссылка на mImageLoader: https://developer.android.com/training/volley/requestqueue.html#singleton
как настроить синглтон-класс и почему
попробуй вот так,
JSONArray data = yourjson.getJSONArray("lists");
ArrayList<String> imgurls = new ArrayList<String>();
for(int i = 0; i < data.length(); i++){
imgUrls.add(data.getJSONObject(i).getString("post_img"))
}
Для Показать изображение в режиме просмотра изображений посетите здесь