اشتراک گذاری تصویر به همراه متن و... داخل عکس ( آموزش)
سلام دوستان !دیدم چندتا از دوستان درمورد اشتراک گذاری تصویر مشکل داشتند گفتم یه آموزش کوچولو بگذارم . امیدوارم به دردتون بخوره .
اول این فیلد رو قرار بدید :
ViewGroup _root;
حالا این کد رو قرار بدید
_root = (RelativeLayout) findViewById(R.id.rootView);
باید بگم که rootView یک Relative Layou هست . یعنی باید در لایوت خودتون یک Relative Layou قرار بدید و آی دیش رو rootView بگذارید.
خب حالا باید اول از تصویر یک اسکرین شات بگیرید و بعدش ذخیره کنید ! این متد رو بیرون از onCreat قرار بدید :
public String SaveScreenshot(){
Random random = new Random();
String path = Environment.getExternalStorageDirectory().toString() + "/EidPics/";
File dir = new File(path);
if (!dir.exists())
dir.mkdirs();
Bitmap bitmap;
_root.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(_root.getDrawingCache());
_root.setDrawingCacheEnabled(false);
path += String.valueOf(random.nextInt(1000)) + ".jpg";
OutputStream fout = null;
File imageFile = new File(path);
try {
fout = new FileOutputStream(imageFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
fout.flush();
fout.close();
} catch (FileNotFoundException e) {
return null;
} catch (IOException e) {
return null;
}
return "file://" + imageFile.getAbsolutePath();
}
خب حالا میخوایم وقتی کاربر یک دکمه رو زد بتونه اشتراک بگذاره اون تصویر رو ! این کد رو در onClick دکمه مربوط بگذارید :
String FileName = SaveScreenshot();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(FileName));
startActivity(Intent.createChooser(intent, getString(R.string.ShareBy)));
توجه کنید :
قسمتR.string.shareBy یک متن است داخل فایل string ! که نوشته شده است اشتراک گذاری شود به وسیله ...
برای راحتی کار این کد رو در فایل string بگذارید :
<string name="ShareBy">اشتراک گذاری شود به وسیله</string>
و باید یادتون باشه پرمیشن دسترسی به کارت حافظه رو در آندروید منیفست قرار بدید ! اینم پرمیشن :
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
همین و تمام .
اگه مشکلی بود در خدمتم
موفق باشید
سلام دوستان
من از این کد استفاده میکنم < (فقط متن رو هم به اشتراک میزارم)تنها مشکلی که هست اینه که نمیشه بصورت MultyLines متن رو ارسال کرد و تمام خطوط یکی میشن <
البته < وقتی محتوی را روی برنامه ایی مثل notepad یا دفترچه میفرستم بخوبی کار میده و خروجی MultyLines هست<
اما روی Whatsapp جواب نمیده !
برای بازار تست کردم < دیدم بازار بخوبی محتوی رو بصورت MultyLines همراه با لینک درون WhatsApp شیر میکنه <
چطوری میشه همچین کاری کرد ؟
String shareBody = "Here is the share content\n" +
"\nwww.google.com\n" +
"\n body";
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, "SHARE_M"));
میدونم که تاپیک مال سک سال پیش هست ولی دیدم سوال دوستمون Criss بی جواب هست گفتم بگم شاید به درد کسی خورد.
تو اشتراک گذاری متن اگر میخواید متن ها چند خطی بشن باید به شکل زیر عمل کنید و بین هر متنی که میخواید یه \n بزنید. مثل برای یک خط یه دونه و برای 3 خط ستا باید بزنید.
shareIntent.putExtra(Intent.EXTRA_TEXT, URL_PIC + "\n\n\n" + images[position] + "\n\n\n" + imageUri + "\n\n\n" + "Quds Day app" + "\n\n" + "Download Link:" + "\n" + "http://appbayan.com/QodsDay.apk");
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .