Łączę udział z poniższym kodem aplikacji.Udostępnianie obrazu png w folderze do rysowania
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"));
}
jak w powyższym kodzie, staram się umieścić png image
który jest w rozciągliwej folderu. Ale obraz nie może zostać wysłany. Czy to dlatego, że w setType jest to image/jpeg? Nie mogę używać jpeg, ponieważ traci przejrzystość. Czy ktoś może mi zaproponować, jak podzielić się z obrazem?
Oto kod, który używam, aby skopiować obraz z rozciągliwej do 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();
}
}
Dzięki za odpowiedź. Ale nie jestem w stanie zrobić tego w pierwszy sposób. – rick
czy skopiowałeś obraz do pamięci zewnętrznej? –
Nie. Nie mogę skopiować obrazu. Zawsze zgłasza wyjątek nie znalezionego pliku. Czy możesz pokazać mi fragment kodu, jeśli już go masz? – rick