Ответ 1
String FILENAME = "image.png";
String PATH = "/mnt/sdcard/"+ FILENAME;
File f = new File(PATH);
Uri yourUri = Uri.fromFile(f);
Я пытаюсь обмениваться изображениями с Facebook, twitter и т.д., используя SHARE INTENT
с Android.
Я нашел код для отправки изображения в намерение общего доступа, но для этого кода нужен URI растрового изображения: fullSizeImageUri
Это полный код:
private void startShareMediaActivity(Bitmap image) {
boolean isVideo=false;
String mimeType="bmp";
Uri fullSizeImageUri=null;
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType(mimeType);
intent.putExtra(Intent.EXTRA_STREAM, fullSizeImageUri);
try {
startActivity(Intent.createChooser(intent, (isVideo ? "video" : "image")));
} catch (android.content.ActivityNotFoundException ex) { }
}
Пожалуйста, может кто-нибудь помочь мне преобразовать Bitmap в Uri?
спасибо
String FILENAME = "image.png";
String PATH = "/mnt/sdcard/"+ FILENAME;
File f = new File(PATH);
Uri yourUri = Uri.fromFile(f);
Вот блог Colin, который предлагает простой способ конвертировать bitmap в Uri Нажмите здесь
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
Ну, вы не можете преобразовать файл растрового изображения в uri. Подробнее о URI здесь
URI - это унифицированный идентификатор ресурса. Но вы можете поместить растровое изображение в абсолютный или относительный URI, как этот
Absolute: http://android.com/yourImage.bmp
Relative: yourImage.bmp
В приведенном выше решении используется хранилище носителей и сохраняется изображение в папке с основным изображением пользователей, что делает его доступным для просмотра через просмотр галереи/фото. Это решение сохранит его как временный файл в ваших данных приложений. В этом примере inImage является растровым, а заголовок - строкой для имени файла изображения.
File tempDir= Environment.getExternalStorageDirectory();
tempDir=new File(tempDir.getAbsolutePath()+"/.temp/");
tempDir.mkdir();
File tempFile = File.createTempFile(title, ".jpg", tempDir);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
byte[] bitmapData = bytes.toByteArray();
//write the bytes in file
FileOutputStream fos = new FileOutputStream(tempFile);
fos.write(bitmapData);
fos.flush();
fos.close();
return Uri.fromFile(tempFile);
String picName = "pic.jpg";
String PATH = Environment.getExternalStorageDirectory().getPath()+ picName;
File f = new File(PATH);
Uri yourUri = Uri.fromFile(f);
передать битмап и compressFormat like (PNG, JPG и т.д.) и качество изображения в процентах
public Uri getImageUri(Bitmap src, Bitmap.CompressFormat format, int quality) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
src.compress(format, quality, os);
String path = MediaStore.Images.Media.insertImage(getContentResolver(), src, "title", null);
return Uri.parse(path);
}