Tôi đang tích hợp chia sẻ với mã sau cho ứng dụng.Chia sẻ hình ảnh png trong thư mục drawable
private void socialShare()
{
Uri uri = Uri.parse("android.resource://com.example.myproject/drawable/appicon");
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.putExtra(Intent.EXTRA_TEXT, "sharing myapp");
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, "Share from"));
}
Như trong đoạn mã trên, tôi đang cố gắng đặt png image
trong thư mục có thể kéo. Nhưng hình ảnh không thể gửi được. Có phải vì trong setType, đó là image/jpeg? Tôi không thể sử dụng jpeg, bởi vì nó mất tính minh bạch. Có thể một số người đề nghị tôi chia sẻ hình ảnh không?
Đây là mã mà tôi sử dụng để sao chép các hình ảnh từ drawable để sdcard:
String commonPath = Environment.getExternalStorageDirectory().toString() + "/MyAppFolder";
File direct = new File(commonPath);
if(!direct.exists())
{
if(direct.mkdir())
{
Log.d("tag","directory created");
//directory is created;
}
}
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.sharingimage);
OutputStream outStream = null;
File savingFile = new File(commonPath, "shareImage.png");
if(!savingFile.exists())
{
Log.d("tag","file is created");
try {
savingFile.createNewFile();
outStream = new FileOutputStream(savingFile);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
Log.d("tag","Saved");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Cảm ơn câu trả lời của bạn. Nhưng tôi không thể làm theo cách thứ nhất. – rick
bạn đã sao chép hình ảnh vào bộ nhớ ngoài –
Không. Tôi không thể sao chép hình ảnh. Nó luôn luôn ném tập tin không tìm thấy ngoại lệ. Bạn có thể vui lòng hiển thị cho tôi đoạn mã nếu bạn đã có đoạn mã đó không? – rick