【问题标题】:ImageDetailsActivity for a recycler viewrecyclerview 的图像详细信息活动
【发布时间】:2025-12-06 09:10:02
【问题描述】:

在我的 android 应用程序中,我列出了带有网络图像视图的图像预览。我希望如果用户按下预览,它会打开一个带有 viewpager 的活动并显示我的回收站视图的特定项目的原始图像。所以,我有两种方法。

1-) 我将为我的数据库中的每个图像保存两个图像。其中一个是小尺寸的预览图像,另一个是原始图像。在我的主要新闻源中,应用程序将加载预览图像,因此下载大小会更小。如果用户按下预览图像,它将打开活动并下载原始图像。

2-) 我的数据库中只有原始图像,我会在下载后最小化它的大小,如果用户按下预览,它将直接显示原始图像,因为它已经下载。

我想知道哪个方法更好,或者有比这些更好的方法吗?

这是我为我的图片设置点击监听器的地方:

for(int i = 0; i < listItem.getImageCount(); i++) {
        final NetworkImageView niv = new NetworkImageView(context);

        niv.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            }
        });

        holderr.layoutImages.addView(niv);
    }

谢谢。

【问题讨论】:

  • 你的意思是,像WhatsApp 用户图片之类的东西?首先它显示预览或小尺寸,然后如果我们点击信息,我们可以看到该图片的最大尺寸。这是您要找的吗?
  • 是的,我确实做了一些研究,现在我正在做这样的事情:我用 viewpager 创建了一个活动,例如,如果预览中有六张图片,它会在其中创建六个片段,然后是每个片段内的图像视图(我遵循第一个选项,在创建活动后,它会下载原始图像)。但是我想下载 1920 x 1080 的图像是一个巨大的过程,我想知道全屏图像的最佳尺寸是多少?
  • 我在下面写了我的想法,为了减少图像在下载之前,我认为你应该使用

标签: android android-recyclerview android-image networkimageview


【解决方案1】:

你可以试试这个

How to reduce an Image file size before uploading to a server

这个想法是,在发送到服务器之前,该图像的大小将被减小然后下载它,之后(例如 - 小ImageView),

使用类似这样的内容:完整文档:http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

android:scaleType="centerCrop"

然后如果用户点击信息Button(或其他),将显示大ImageView 但是,身高和体重之间有一个差异 比之前的ImageView.

这是一个使用 ImageViewandroid:scaleType="fitXY" 的示例:

<ImageView
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:contentDescription="Main Image"
   android:padding="1dp"
   android:scaleType="fitXY"
   android:src="@drawable/balloon" />

http://hmkcode.com/android-designing-whatsapp-like-user-profile-screen/

关键是,我认为您不需要将该图像存储在您的 sdcard 或任何地方。只需以最佳质量使用(存储)一次 :)

希望有帮助。

【讨论】: