Как конвертировать URL в изображение в HashMap?

Это мое 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);
}
});

}

}
}

-2

Решение

Вы можете использовать библиотеку залпов от 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
как настроить синглтон-класс и почему

1

Другие решения

попробуй вот так,

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"))
}

Для Показать изображение в режиме просмотра изображений посетите здесь

0

По вопросам рекламы [email protected]