【问题标题】:Android open image in gallery with slide through imagesAndroid在图库中打开图像并通过图像滑动
【发布时间】:2023-03-03 18:33:01
【问题描述】:

我正在开发 Android 相机应用,并希望拥有大多数相机应用中的功能:

点击预览图标打开画廊,显示当前照片并允许滑动相机文件夹中的所有图像。

当我使用 Intent.ACTION_VIEW 时,图库仅显示 1 张图像,无法查看目录中的其他照片。

intent Intent.ACTION_VIEW 是否有任何额外的标志来获取此类行为?

是否有任何解决方法可以解决此类问题?

【问题讨论】:

  • 您找到解决方案了吗?我找到了this answer,但它非常简短。如果您知道如何操作,请发布您的答案。

标签: android android-intent android-gallery


【解决方案1】:

intent Intent.ACTION_VIEW 是否有任何额外的标志来获得此类行为?

没有。

不要求 Android 设备具有能够“显示当前照片并允许滑动浏览相机文件夹中的所有图像”的应用程序。对于那些碰巧有这样一个应用程序的设备,没有标准的Intent 结构要求应用程序“显示当前照片并允许滑动浏览相机文件夹中的所有图像”。

是否有任何解决方法可以解决此类问题?

为此编写您自己的 UI。

【讨论】:

  • OP 已经特别提到了 gallery 并且是的许多应用程序(例如 WhatsApp)使用 gallery 显示图像(可能使用 Intent.ACTION_VIEW)并且还允许用户滚动浏览同一文件夹中的其他图像。
  • @Atul:“OP 特别提到了图库”——Android 设备不需要包含“显示当前照片并允许滑动相机文件夹中的所有图像”的图库应用.而且,即使对于那些具有图库应用程序并提供此类功能的设备,也无法保证ACTION_VIEW 会触发该功能。
【解决方案2】:

@CommonsWare 可能听起来有点刺耳,但如果你要制作一个应用程序,不要指望你只需要一些神奇的 Intent 调用来为你完成所有工作。

对于您想要实现的目标,请查看 ViewPager,它可以让您在不同的视图之间滑动(然后每个视图都会显示一个图像)。 Chris Bane 提供了一个不错的自定义视图,允许查看、缩放和滚动图片:https://github.com/chrisbanes/PhotoView

【讨论】:

  • 是的,看来我必须实现自定义预览,使用 PhotoView 似乎非常快。我只是希望有某种方式允许在画廊中显示照片,更喜欢用户,而不是为常用功能提供自定义界面。
【解决方案3】:

OpenCamera AlmalenceGUI.openExternalGallery() 使用未记录的 action="com.android.camera.action.REVIEW" 在我的 android-4.2.2 中以滑动模式打开图库。

private void openExternalGallery(Uri uri)
{
    try
    {
        Intent intent = new Intent("com.android.camera.action.REVIEW", uri);
        intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        ApplicationScreen.instance.startActivity(intent);
    } catch (ActivityNotFoundException ex)
    {
        try
        {
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            ApplicationScreen.instance.startActivity(intent);
        } catch (ActivityNotFoundException e)
        {
            Log.e("AlmalenceGUI", "review image fail. uri=" + uri, e);
        }
    }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-30
  • 1970-01-01
  • 2013-03-29
  • 2011-10-15
  • 2014-09-29
  • 1970-01-01
相关资源
最近更新 更多