开发者

Post image to Facebook in JSON format in Android

开发者 https://www.devze.com 2023-02-06 10:13 出处:网络
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 fo

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>
0

精彩评论

暂无评论...
验证码 换一张
取 消