PDA

View Full Version : به اشتراک گذاشتن یک متن و ذخیره عکس



rasaam
شنبه 12 مرداد 1392, 20:41 عصر
سلام
دو تا سوال داشتم برای جلوگیری از شلوغی جفتشو تو یدونه تاپیک میپرسم.اولیش اینکه چطور میشه متن داخل یک تکست ویو رو به اشتراک گذاشت؟منظورم فقط پیامک نیست.مثلا وقتی روش تپ میکنی صفحه برنامه های به اشتراک گذاشتن باز بشه و بعد برنامه که باز میشه مثلا فیسبوک یا پیامک اس ام اس اون متن توی کادر مخصوص باشه دیگه اینکه مخاطب انتخاب کنیو اینها رو نمیخوام

سوال دوم اینکه چجوری روی یه عکس تپ کنم و اون عکس به آدرسی که میخوام توی مموری کارت ذخیره بشه
ممنون

hamyd_reza
شنبه 12 مرداد 1392, 21:26 عصر
----------

rasaam
شنبه 12 مرداد 1392, 21:47 عصر
آقا دست شما درد نکنه عالی جواب داد فقط سوال دومم ممنون میشم دوستان پاسخ بدن

rubiks.kde
شنبه 12 مرداد 1392, 22:39 عصر
ابتدا فایل عکس رو باید از image view بگیری به این صورت
BitmapDrawable drawable = (BitmapDrawable) mImageView1.getDrawable();
Bitmap bitmap = drawable.getBitmap();

بعد بیا آدرس حافظه رو مشخص کن و یه فایل ایجاد کن

File sdCardDirectory = Environment.getExternalStorageDirectory();
File image = new File(sdCardDirectory, "test.png");

حالا فایل رو به png یا هر فرمتی خواستی تبدیل بعد هم ذخیره

boolean success = false;

// Encode the file as a PNG image.
FileOutputStream outStream;
try {

outStream = new FileOutputStream(image);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
/* 100 to keep full quality of the image */

outStream.flush();
outStream.close();
success = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

حالا تست کن ببین درست عمل کرده یا نه

if (success) {
Toast.makeText(getApplicationContext(), "Image saved with success",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(),
"Error during image saving", Toast.LENGTH_LONG).show();
}

یادت نره این پرمیشن رو به برنامه بدی

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

البته تمام این کارا رو توی تابع onClick اون imageview بنویس

rasaam
یک شنبه 13 مرداد 1392, 13:55 عصر
متشکر از دوستان
ولی راهی نداره که مستقیم از پوشه assets فایل رو جایی بشه ذخیره کنیم؟منظورم فقط عکس نیست مثلا یک فایل زیپ رو؟

rubiks.kde
یک شنبه 13 مرداد 1392, 23:59 عصر
چرا دوست عزیز میتونی این کار رو به راحتی انجام بدی.به این صورت

این کد کل فایل های پوشه assets رو کپی میکنه.

private void copyAssets() {
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManager.list("");
} catch (IOException e) {
Log.e("tag", "Failed to get asset file list.", e);
}
for(String filename : files) {
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open(filename);
File outFile = new File(getExternalFilesDir(null), filename);
out = new FileOutputStream(outFile);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch(IOException e) {
Log.e("tag", "Failed to copy asset file: " + filename, e);
}
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}

rasaam
دوشنبه 14 مرداد 1392, 00:34 صبح
این کد کل فایل ها رو کپی میکنه؟اگه بخوایم فایل مخصوصی رو کپی کنیم چی؟

darkenerboy
دوشنبه 14 مرداد 1392, 03:17 صبح
حلفه رو بردار
بجای fileName اسم فایل مورد نظر رو بنویس