android - 将图像从资产下载到移动内部存储
问题描述
我有这个适配器类。我想要实现的是我在资产文件夹中有几个 .png 图像,并且我已经在 cardview 中显示了它们,并点击了一个按钮,该特定图像应该被下载到手机的内存中。我尝试了网上的很多建议,但他们没有帮助。谁能解决我的这个问题??
这里提到的 ImageListingDao 是带有 id 和 imagepath 的 getter 和 setter 的 dao 类。我在资产文件夹中有 db,我通过它在卡片中加载图像。
public class ImageListingAdapter extends RecyclerView.Adapter<ImageListingAdapter.ViewHolder> {
private ArrayList<ImageListingDao> imageslist;
private Context imagelist_context;
public ImageListingAdapter(Context context, ArrayList<ImageListingDao > imageslist){
this.imageslist= imageslist;
imagelist_context= context;
}
@NonNull
@Override
public ImageListingAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.image_display_binder, parent, false);
return new ImageListingAdapter.ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final ImageListingAdapter.ViewHolder holder, final int position) {
try
{
AssetManager assetManager = imagelist_context.getAssets();
InputStream is = assetManager.open(""+imageslist.get(position).getImageListingpath());
Bitmap bitmap = BitmapFactory.decodeStream(is);
holder.image_listing.setImageBitmap(bitmap);
is .close();
}
catch(IOException ex)
{
ex.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
holder.idownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// what should I write here!!??
}
});
}
@Override
public int getItemCount() {
return imageslist.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
// TextView textmessage_text_name;
ImageView image_listing;
ImageButton idownload, ishare, ifav;
public ViewHolder(View itemView) {
super(itemView);
image_listing = itemView.findViewById(R.id.image_detail_view);
idownload= itemView.findViewById(R.id.image_detail_download);
ishare= itemView.findViewById(R.id.image_detail_share);
ifav= itemView.findViewById(R.id.image_detail_fav);
}
}
}
解决方案
推荐阅读
- discord - 如何使用 discord.js 从服务器获取所有成员
- php - PHP copy() Windows 错误*出现*的确切时间是什么时候?
- javafx - 找不到前缀“gluonfx”的插件 + 导致无法识别 gluon mobile 和 javafx 代码
- mysql - SQL 语句选择总是相同的字段,即使语句搜索其他
- python - Python:合并嵌套字典列表并获取字典(树)
- configuration - 使用 Terraform 将自定义 DNS 服务器 IP 添加到 Azure VM NIC
- c# - 当 VSCode 没有给我错误时该怎么办?
- google-apps-script - /others 命令在我的电报机器人中不起作用
- multithreading - 我可以等待线程加入结构的 drop 函数吗
- python - Dictionary Inception - 如何打印示例