繁体   English   中英

android-在imageview内共享随viewpager更改的图像

[英]android - sharing image inside imageview that gets changed with viewpager

我有一个屏幕,其中使用imageview和viewpager向左和向右滑动图像。 它拾取代码中指定的图像(项目中的可绘制对象)。 我想知道用户共享图像的最佳方法是什么。

拥有将每个图像保存到卡上并共享的按钮,还是拥有对屏幕上的任何内容进行屏幕快照并共享的按钮,会更好? 我尝试搜索,但发现屏幕快照仅适用于root用户的手机(不适用于我的应用程序),但这些线程是两年前的,所以也许情况有所改变RE:以编程方式进行屏幕快照?

我不是在寻找代码片段,只是想知道这样做的最佳策略是什么,而无需过多更改查看图像的方式。

根据文档 ,您要查看创建共享意图的过程,如下所示:

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));

然后,您可以在操作栏中添加一个简单的共享操作 ,这是用户浏览可共享图像时期望的操作。

创建菜单资源:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
        android:id="@+id/menu_item_share"
        android:showAsAction="ifRoom"
        android:title="Share"
        android:actionProviderClass=
            "android.widget.ShareActionProvider" />
...
</menu>

然后在onCreate对其进行膨胀,并使用之前创建的Intent它分配一些功能:

private ShareActionProvider mShareActionProvider;
...

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate menu resource file.
getMenuInflater().inflate(R.menu.share_menu, menu);

// Locate MenuItem with ShareActionProvider
MenuItem item = menu.findItem(R.id.menu_item_share);

// Fetch and store ShareActionProvider
mShareActionProvider = (ShareActionProvider) item.getActionProvider();

// Return true to display menu
    return true;
}

// Call to update the share intent
private void setShareIntent(Intent shareIntent) {
if (mShareActionProvider != null) {
    mShareActionProvider.setShareIntent(shareIntent);
    }
}

我将避免对屏幕快照进行截图,而是创建一个已经可用的数据副本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM