• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps post image to twitter wall in android

krishnaveni

Well-Known Member
Dec 16, 2011
158
0
chennai
I have to develop one android application.

Here i have to post the image url to twitter wall ....here the image is sent from file(upload from camera and sdcard)..But i don't need to get the image from sdcard and camera...i wish to get the image from one string value and post to wall....How can i do ....

In these below code is worked for upload the image from sdcard and camera afterthat its post to wall:

[HIGH]
final String [] items = new String [] {"From Camera", "From SD Card"};
ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.select_dialog_item,items);
AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("Select Image");
builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
public void onClick( DialogInterface dialog, int item ) {
if (item == 0) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(),
"tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
mImageCaptureUri = Uri.fromFile(file);

try {
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
intent.putExtra("return-data", true);

startActivityForResult(intent, PICK_FROM_CAMERA);
} catch (Exception e) {
e.printStackTrace();
}

dialog.cancel();
} else {
Intent intent = new Intent();

intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_FILE);
}
}
} );

final AlertDialog dialog = builder.create();

TwitterApp twitterApp = new TwitterApp(this, twitter_consumer_key,twitter_secret_key);

if (twitterApp.hasAccessToken()) {
String username = twitterApp.getUsername();
username = (username.equals("")) ? "No Name" : username;

((TextView) findViewById(R.id.tv_user)).setText("Current Twitter User: "+ username);
}

mImageView = (ImageView) findViewById(R.id.iv_pic);

((Button) findViewById(R.id.btn_choose)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.show();
}
});

((Button) findViewById(R.id.btn_send)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new ImageSender().execute();
}
});
}

private class ImageSender extends AsyncTask<URL, Integer, Long> {
private String url;

protected void onPreExecute() {
mProgressDialog = ProgressDialog.show(SendImageActivity.this, "", "Sending image...", true);

mProgressDialog.setCancelable(false);
mProgressDialog.show();
}

protected Long doInBackground(URL... urls) {
long result = 0;

TwitterSession twitterSession = new TwitterSession(SendImageActivity.this);
AccessToken accessToken = twitterSession.getAccessToken();

Configuration conf = new ConfigurationBuilder()
.setOAuthConsumerKey(twitter_consumer_key)
.setOAuthConsumerSecret(twitter_secret_key)
.setOAuthAccessToken(accessToken.getToken())
.setOAuthAccessTokenSecret(accessToken.getTokenSecret())
.build();

OAuthAuthorization auth = new OAuthAuthorization (conf, conf.getOAuthConsumerKey (), conf.getOAuthConsumerSecret (),
new AccessToken (conf.getOAuthAccessToken (), conf.getOAuthAccessTokenSecret ()));

ImageUpload upload = ImageUpload.getTwitpicUploader (twitpic_api_key, auth);

Log.d(TAG, "Start sending image...");

try {
url = upload.upload(new File(mPath));
result = 1;

Log.d(TAG, "Image uploaded, Twitpic url is " + url);
} catch (Exception e) {
Log.e(TAG, "Failed to send image");

e.printStackTrace();
}

return result;
}

protected void onProgressUpdate(Integer... progress) {
}

protected void onPostExecute(Long result) {
mProgressDialog.cancel();

String text = (result == 1) ? "Image sent successfully.\n Twitpic url is: " + url : "Failed to send image";

Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) return;

Bitmap bitmap = null;

if (requestCode == PICK_FROM_FILE) {
mImageCaptureUri = data.getData();
mPath = getRealPathFromURI(mImageCaptureUri); //from Gallery

if (mPath == null)
mPath = mImageCaptureUri.getPath(); //from File Manager

if (mPath != null)
bitmap = BitmapFactory.decodeFile(mPath);
} else {
mPath = mImageCaptureUri.getPath();
bitmap = BitmapFactory.decodeFile(mPath);
}

mImageView.setImageBitmap(bitmap);
}

public String getRealPathFromURI(Uri contentUri) {
String [] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery( contentUri, proj, null, null,null);

if (cursor == null) return null;

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

cursor.moveToFirst();

return cursor.getString(column_index);
}

[/HIGH]

It performs well.

But I wish to post the image from the string value...

For EG:

String image="http://sample.png"

This image url is convert to twitpic url and that url is post to wall...How can i do...pls give me some suggestions....
 

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones