رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

نمایش تصویر از JSON در وب سرویس


پست های پیشنهاد شده

با سلام و خسته نباشید

من در حال توسعه برنامه ای هست که اطلاعات وب سرویس رو با استفاده از JSON فراخوانی می کنم که به این صورت است :

{"DeviceId":"25","FullName":"\u0634\u062c\u0631\u06cc\u0627\u0646","Rate":"5","Comment":"\u0628\u0647\u062a\u0631\u06cc\u0646 \u0622\u0647\u0646\u06af \u0634\u062c\u0631\u06cc\u0627\u0646","Location":"photos\/shajarian-9241eb4107b24c588c0ca0042534c03e.png","PublishTime":"13-03-26 19:04:56"}

حالا من تمامی این اطلاعات رو می توانم وارد list view در برنامه کنم به جز تصویری که در Location قرار دارد ! می خواهم تصویر رو هم وارد Image view کنم و در برنامه نمایش بدهم .

این قسمتی از فایلی است که اطلاعات رو از وب سرویس می گیرم و به لیست ویو می دهم :

try {			URL url = new URL(LinkManager.getCommentAPI("all"));			Log.d(TAG, "Try to open: " + url.toString());			urlConnection = (HttpURLConnection) url.openConnection();			int responseCode = urlConnection.getResponseCode();			Log.d(TAG, "Response code is: " + responseCode);			if (responseCode == HttpURLConnection.HTTP_OK) {				BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));				if (in != null) {					StringBuilder strBuilder = new StringBuilder();					// Read character by character    								int ch = 0;					while ((ch = in.read()) != -1)						strBuilder.append((char) ch);					// get returned message and show it					String response = strBuilder.toString();					Log.d("Server response:", response);					JSONObject jObject = new JSONObject(response);					JSONArray jsonArray = jObject.getJSONArray("posts");					for(int i=0; i							Vote vote = new Vote();						vote.setDeviceId(jsonArray.getJSONObject(i).getString("DeviceId"));						vote.setName(jsonArray.getJSONObject(i).getString("FullName"));						vote.setRate(jsonArray.getJSONObject(i).getString("Rate"));						vote.setComment(jsonArray.getJSONObject(i).getString("Comment"));						vote.setLocation(jsonArray.getJSONObject(i).getString("Location"));						vote.setPublishDate(jsonArray.getJSONObject(i).getString("PublishTime"));						Log.d("sajadpm:", "test 6");						voteList.add(vote);						Log.d("sajadpm:", "test 7");					}					if(voteList.size() >= 1)						status = true;				}				in.close();			}		}

و این هم فایل ListAdapter :

public class VoteListAdapter extends BaseAdapter {private final String TAG = "*** VoteListAdapter ***";private LayoutInflater myInflater;private List vote;public VoteListAdapter(Context context) {	myInflater = LayoutInflater.from(context);	Log.d(TAG, "test 1 vote adapter");}public void setData(List vote) {	Log.d(TAG, "test 2 vote adapter");	this.vote = vote;	Log.d(TAG, "test 3 vote adapter");}public int getCount() {	return vote.size();}public Object getItem(int position) {	Log.d(TAG, "test 5 vote adapter");	return null;}public long getItemId(int position) {	Log.d(TAG, "test 6 vote adapter");	return position;}public View getView(int position, View convertView, ViewGroup parent) {	Log.d(TAG, "test 7 vote adapter");	ViewHolder holder;        	Log.d(TAG, "test 2 vote adapter");	if (convertView == null) {       	convertView = myInflater.inflate(R.layout.row, null);       	holder 		= new ViewHolder();		holder.tvName      = (TextView)  	convertView.findViewById(R.id.tvName);		holder.tvComment   = (TextView)  	convertView.findViewById(R.id.tvComment);		holder.tvDate      = (TextView)  	convertView.findViewById(R.id.tvDate);		holder.ratingBar   = (RatingBar)	convertView.findViewById(R.id.ratingBar);		convertView.setTag(holder);       } else {       	holder = (ViewHolder) convertView.getTag();       }	holder.tvName.setText(vote.get(position).getLocation());	holder.tvComment.setText(vote.get(position).getComment());	holder.tvDate.setText(getFormatedDate(vote.get(position).getPublishDate()));	holder.ratingBar.setRating(Integer.parseInt(vote.get(position).getRate()));	return convertView;}private String getFormatedDate(String date) {	String myDate = null;	Log.d(TAG, "test 2 vote adapter");	try {		Date oldDate = new SimpleDateFormat("yy-mm-dd hh:mm:ss").parse(date);		myDate = new SimpleDateFormat("dd MMM yyyy").format(oldDate);	} catch (ParseException e) {		myDate = "";		e.printStackTrace();	}	return myDate;}static class ViewHolder {	TextView  tvName;	TextView  tvComment;	TextView  tvDate;	RatingBar ratingBar;}

با کلی جستجو فهمیدم باید از imageloder استفاده کنم ولی نتوانستم در پروژه ام استفاده کنم . ممنون می شوم کمکم کنید اگر توضیح بیشتری لازم بود بگید تا بگم . :(

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بله برای خواندن تصاویر از وب باید از ImageLoader استفاده کنید.

نمونه مثال رو هم میتونید از سایت زیر بردارید

http://www.androidhive.info/2012/07/android-loading-image-from-url-http/
لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...