Post image to Facebook in JSON format in Android
I want to post image to the Facebook in which I am having my JSON string,I have included static image in the string, and it works fine, if I want to add dynamic image wh开发者_如何学JAVAat can I do for if?
Here is my code:
parameters.putString(
"attachment",
"{\"name\":\""
+ b.getString("title")
+ "\",\"href\":\""
+ b.getString("cmpWeb")
+ "\",\"description\":\""
+ desc
+ "\",\"media\":[{\"type\":\"image\",\"src\":\"http://184.106.227.45/quaddeals/img/small_thumb/Deal/692.e6b86fa39f3ba25e29f0351140b57a94.jpg\",\"href\":\"http://alumni.brown.edu/\"}]}");
This value is http://184.106.227.45/quaddeals/img/small_thumb/Deal/692.e6b86fa39f3ba25e29f0351140b57a94.jpg\" static value I want to include dynamic content that I got from previous page by using intent,say(b.getString("url")).
Also I want to show the web link if user click the link it should shows the Web View is also static "http://alumni.brown.edu" i want to include dynamic data.
Hey i use this code to upload image using Json. i will show u that code if you get help form that.
UploadPhotoResultDialog.java
public class UploadPhotoResultDialog extends Dialog {
private String response, photo_id;
private TextView mOutput, mUsefulTip;
private Button mViewPhotoButton, mTagPhotoButton;
private ImageView mUploadedPhoto;
private Activity activity;
private ProgressDialog dialog;
private boolean hidePhoto = false;
private Handler mHandler;
public UploadPhotoResultDialog(Activity activity, String title, String response) {
super(activity);
this.activity = activity;
this.response = response;
setTitle(title);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHandler = new Handler();
setContentView(R.layout.upload_photo_response);
LayoutParams params = getWindow().getAttributes();
params.width = LayoutParams.FILL_PARENT;
params.height = LayoutParams.FILL_PARENT;
getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
mOutput = (TextView) findViewById(R.id.apiOutput);
mUsefulTip = (TextView) findViewById(R.id.usefulTip);
mViewPhotoButton = (Button) findViewById(R.id.view_photo_button);
mTagPhotoButton = (Button) findViewById(R.id.tag_photo_button);
mUploadedPhoto = (ImageView) findViewById(R.id.uploadedPhoto);
JSONObject json;
try {
json = Util.parseJson(response);
final String photo_id = json.getString("id");
this.photo_id = photo_id;
mOutput.setText(json.toString(2));
mUsefulTip.setText(activity.getString(R.string.photo_tip));
Linkify.addLinks(mUsefulTip, Linkify.WEB_URLS);
mViewPhotoButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(hidePhoto) {
mViewPhotoButton.setText(R.string.view_photo);
hidePhoto = false;
mUploadedPhoto.setImageBitmap(null);
} else {
hidePhoto = true;
mViewPhotoButton.setText(R.string.hide_photo);
/*
* Source tag: view_photo_tag
*/
Bundle params = new Bundle();
params.putString("fields", "picture");
dialog = ProgressDialog.show(activity, "", activity.getString(R.string.please_wait), true, true);
dialog.show();
Utility.mAsyncRunner.request(photo_id, params, new ViewPhotoRequestListener());
}
}
});
mTagPhotoButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
/*
* Source tag: tag_photo_tag
*/
setTag();
}
});
} catch (JSONException e) {
setText(activity.getString(R.string.exception) + e.getMessage());
} catch (FacebookError e) {
setText(activity.getString(R.string.facebook_error) + e.getMessage());
}
}
public void setTag() {
String relativePath = photo_id +"/tags/" + Utility.userUID;
Bundle params = new Bundle();
params.putString("x", "5");
params.putString("y", "5");
Utility.mAsyncRunner.request(relativePath, params, "POST", new TagPhotoRequestListener(), null);
}
public class ViewPhotoRequestListener extends BaseRequestListener {
public void onComplete(final String response, final Object state) {
try {
JSONObject json = Util.parseJson(response);
final String pictureURL = json.getString("picture");
if(TextUtils.isEmpty(pictureURL)) {
setText("Error getting \'picture\' field of the photo");
} else {
mHandler.post(new Runnable() {
public void run() {
new FetchImage().execute(pictureURL);
}
});
}
} catch (JSONException e) {
dialog.dismiss();
setText(activity.getString(R.string.exception) + e.getMessage());
} catch (FacebookError e) {
dialog.dismiss();
setText(activity.getString(R.string.facebook_error) + e.getMessage());
}
}
public void onFacebookError(FacebookError error) {
dialog.dismiss();
setText(activity.getString(R.string.facebook_error) + error.getMessage());
}
}
public class TagPhotoRequestListener extends BaseRequestListener {
public void onComplete(final String response, final Object state) {
if (response.equals("true")) {
String message = "User tagged in photo at (5, 5)" + "\n";
message += "Api Response: " + response;
setText(message);
} else {
setText("User could not be tagged.");
}
}
public void onFacebookError(FacebookError error) {
setText(activity.getString(R.string.facebook_error) + error.getMessage());
}
}
public void setText(final String txt) {
mHandler.post(new Runnable() {
public void run() {
mOutput.setText(txt);
}
});
}
private class FetchImage extends AsyncTask<String, Void, Bitmap> {
protected Bitmap doInBackground(String... urls) {
return Utility.getBitmap(urls[0]);
}
protected void onPostExecute(Bitmap result) {
dialog.dismiss();
mUploadedPhoto.setImageBitmap(result);
}
}
}
And Xml Fiel for that :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/black">
<TextView
android:id="@+id/apiOutputLabel"
android:text="@string/api_response"
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="3dp"
android:paddingLeft="3dp" />
<ScrollView
android:id="@+id/ScrollView01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:paddingBottom="3dp">
<TextView android:id="@+id/apiOutput"
android:textColor="@color/white"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="3dp"
android:paddingLeft="3dp"
android:background="@color/grey" />
</ScrollView>
<View
android:paddingTop="3dp"
android:layout_width="fill_parent"
android:layout_height="2dip"
android:background="@color/grey" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/view_photo_button"
android:text="@string/view_photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp" />
<Button
android:id="@+id/tag_photo_button"
android:text="@string/tag_photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp" />
</LinearLayout>
<ImageView
android:id="@+id/uploadedPhoto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="3dp"
android:paddingBottom="3dp" />
<TextView
android:id="@+id/tip_label"
android:text="@string/tip_label"
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="3dp"
android:paddingLeft="3dp" />
<TextView
android:id="@+id/usefulTip"
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:paddingLeft="3dp" />
</LinearLayout>
精彩评论