我想一個分享按鈕添加到我的應用程序,它通過Facebook等我尋覓通過互聯網採用的屏幕截圖,然後共享它。我也搜索過堆棧溢出;有很多與這個問題有關的線索,但我還沒有弄清楚。令我困惑的是..在每個例子中,圖像的文件路徑都是硬編碼的。我喜歡那樣,但它沒有用處和動態。我所試圖做的是採取的那一刻截圖,然後分享它,但是當我自己給的文件路徑,它只是需要那張圖片從一個文件夾並分享了機器人採取的截圖和分享它
public void clickButton(View v) {
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
//set the type
shareIntent.setType("image/png");
//add a subject
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
"CAR EXAMPLE");
//build the body of the message to be shared
String shareMessage = "An app...";
//add the message
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareMessage);
//add the img
shareIntent.putExtra(Intent.EXTRA_STREAM,
Uri.parse("/storage/sdcard0/Tutorial_ScreenShot/screenshot0.jpg"));
//start the chooser for sharing
startActivity(Intent.createChooser(shareIntent, "Share"));
}
正如你所看到的添加圖像部分我自己給出了文件路徑。因此,如何提供一個更動態行爲給..我的意思是,當我按一下按鈕我的應用程序的屏幕必須被保存在一個文件夾中,然後我可以共享沒有硬編碼文件路徑它。
編輯: 嘗試下面的解決方案後,
好,謝謝。我叫shareIt()右下它和應用程序停止...... 這裏按鈕的onClick是日誌。
12-28 15:53:01.660: E/AndroidRuntime(14120): FATAL EXCEPTION: main
12-28 15:53:01.660: E/AndroidRuntime(14120): Process: com.hede.namesurfer, PID: 14120
12-28 15:53:01.660: E/AndroidRuntime(14120): java.lang.NullPointerException
12-28 15:53:01.660: E/AndroidRuntime(14120): at
com.hede.namesurfer.MainActivity.share(MainActivity.java:161)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
com.hede.namesurfer.MainActivity$1.onClick(MainActivity.java:42)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
android.view.View.performClick(View.java:4438)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
android.view.View$PerformClick.run(View.java:18422)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
android.os.Handler.handleCallback(Handler.java:733)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
android.os.Handler.dispatchMessage(Handler.java:95)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
android.os.Looper.loop(Looper.java:136)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
android.app.ActivityThread.main(ActivityThread.java:5017)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
java.lang.reflect.Method.invokeNative(Native Method)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
java.lang.reflect.Method.invoke(Method.java:515)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
12-28 15:53:01.660: E/AndroidRuntime(14120): at
dalvik.system.NativeStart.main(Native Method)
12-28 15:53:02.780: I/Process(14120): Sending signal. PID
[您將在這裏找到你的解決方案(https://stackoverflow.com/a/44670639/7499305) –