Android:从底部滑动时的 SharingActionView
Android: SharingActionView on swipe from bottom
我想与其他应用程序共享数据,但我不想要出现在底部工具栏的标准弹出窗口;我想要这样的观点:
我按照官方文档:https://developer.android.com/training/sharing/shareaction.html
那么 Android SDK 中是否有原生组件可以做到这一点?或者有没有图书馆可以做到这一点?
感谢大家的帮助!
在 Android OS Lollipop google 中更改了他们的分享意图设计。所以要得到这个设计你应该有棒棒糖版本及以上。
更新:
private void setShareIntent(Intent shareIntent) {
if (mShareActionProvider != null) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/jpg");
File photoFile = new File(getFilesDir(), "foo.jpg");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(photoFile));
mShareActionProvider.setShareIntent(shareIntent);
}
}
这样试试。
你可以这样做:
首先创建一个菜单项:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.rashish.myapplication.MainActivity">
<item
android:id="@+id/action_share"
android:orderInCategory="100"
android:title="@string/action_settings"
android:icon="@android:drawable/ic_menu_share"
app:showAsAction="always" />
</menu>
然后创建一个方法来显示 Intent 选择器对话框,如下所示:
private void share() {
String textToShare = "hello";
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
// set the type here i.e, text/image/ etc.
sharingIntent.setType("text/plain");
sharingIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(Intent.EXTRA_TEXT, textToShare);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
然后在onOptionsItemSelected
方法中,点击菜单项时调用这个函数:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here.
int id = item.getItemId();
if (id == R.id.action_share) {
share();
return true;
}
return super.onOptionsItemSelected(item);
}
还要确保您已经像这样在 Activity 中覆盖了 onCreateOptionsMenu
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
这是输出:
我想与其他应用程序共享数据,但我不想要出现在底部工具栏的标准弹出窗口;我想要这样的观点:
我按照官方文档:https://developer.android.com/training/sharing/shareaction.html
那么 Android SDK 中是否有原生组件可以做到这一点?或者有没有图书馆可以做到这一点?
感谢大家的帮助!
在 Android OS Lollipop google 中更改了他们的分享意图设计。所以要得到这个设计你应该有棒棒糖版本及以上。
更新:
private void setShareIntent(Intent shareIntent) {
if (mShareActionProvider != null) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/jpg");
File photoFile = new File(getFilesDir(), "foo.jpg");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(photoFile));
mShareActionProvider.setShareIntent(shareIntent);
}
}
这样试试。
你可以这样做:
首先创建一个菜单项:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.rashish.myapplication.MainActivity">
<item
android:id="@+id/action_share"
android:orderInCategory="100"
android:title="@string/action_settings"
android:icon="@android:drawable/ic_menu_share"
app:showAsAction="always" />
</menu>
然后创建一个方法来显示 Intent 选择器对话框,如下所示:
private void share() {
String textToShare = "hello";
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
// set the type here i.e, text/image/ etc.
sharingIntent.setType("text/plain");
sharingIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(Intent.EXTRA_TEXT, textToShare);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
然后在onOptionsItemSelected
方法中,点击菜单项时调用这个函数:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here.
int id = item.getItemId();
if (id == R.id.action_share) {
share();
return true;
}
return super.onOptionsItemSelected(item);
}
还要确保您已经像这样在 Activity 中覆盖了 onCreateOptionsMenu
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
这是输出: