Ich integriere mit dem folgenden Code für die App share.Gemeinsame Nutzung eines PNG-Bildes im Zeichenordner
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"));
}
Wie in dem obigen Code, ich versuche png image
, die in ziehbar Ordnern zu setzen. Das Bild kann jedoch nicht gesendet werden. Ist das, weil in setType, image/jpeg? Ich kann JPEG nicht verwenden, weil es die Transparenz verliert. Kann mir jemand bitte vorschlagen, wie man mit Bild teilt?
Hier ist der Code, den ich verwende das Bild von ziehbar zu sdcard kopieren:
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();
}
}
Danke für Ihre Antwort. Aber ich kann es nicht mit dem ersten Weg schaffen. – rick
haben Sie das Bild in den externen Speicher kopiert –
Nein. Ich kann das Bild nicht kopieren. Es löst immer die Ausnahme "Datei nicht gefunden" aus. Können Sie mir bitte Code-Schnipsel zeigen, wenn Sie es bereits haben? – rick