gpt4 book ai didi

java - 如何在 Android Studio 中使用 Volley 下载内部存储中的文件?

转载 作者:行者123 更新时间:2023-11-30 12:02:31 25 4
gpt4 key购买 nike

在我的 android 应用程序中,我想使用 android studio 中的下载管理器将文件从 Web 服务器下载到移动设备的内部存储。而且我还需要在 Volley 函数中使用它。

我的代码

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png");
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalFilesDir(DownloadsActivity.this, Environment.DIRECTORY_DOWNLOADS, "banu.jpg");
}

在上面的代码中,我已经尝试过点击按钮。

最佳答案

NetworkImageView 自动从后台队列加载图像并取消请求。

ImageLoader 用于分离 View 并自动使用磁盘缓存中的内存。

我们可以使用 NetworkImageView 来下载图像。以下是示例。

layout_example.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<com.android.volley.toolbox.NetworkImageView
android:id="@+id/photo"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

</RelativeLayout>

并在您的 MainActivity.java

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_example);
NetworkImageView nv = (NetworkImageView) findViewById(R.id.photo);
// image for loading...
nv.setDefaultImageResId(R.drawable.default_image);
//ImgController from your code.
nv.setImageUrl(imageUrl, ImgController.getInstance().getImageLoader());
}

编辑

  • 使用 Volley 支持下载字符串、图像和 JSON。

Volley 不适合大量下载或流式传输(Volley 在解析期间将所有响应保存在内存中,因此大量下载会占用大量内存)。

对于大型下载,您应该使用 DownloadManager

下载图片

使用 Volley 有两种方法:

  • ImageRequest – 在 URL 获取图像,返回位图。您可以设置所需的大小。 Volley 在主线程之外进行处理

  • ImageLoader – 这从远程 Url 加载和缓存图像。它就像是多个 ImageRequest 的管理者。它非常适合将图像加载到列表和网格中。你可以包含一个内存缓存

以及我们通过 NetworkImageView 的特殊 ImageView 。

有关更多信息,它将帮助您:https://mobikul.com/downloading-files-using-volley/

希望对您有所帮助...!

关于java - 如何在 Android Studio 中使用 Volley 下载内部存储中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58516011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com