gpt4 book ai didi

android - 如何知道图像是否仍然存在

转载 作者:行者123 更新时间:2023-11-29 19:33:39 25 4
gpt4 key购买 nike

我的应用程序创建了一个相册,用户选择他/她想要添加到相册中的图像。

我将选定的图像路径存储在数据库中并检索这些路径并将其转换为位图并将它们放置在 RecyclerView 中。

我的问题是如果用户删除了图库中的图片,但我的数据库中的路径仍然存在怎么办我的应用程序如何适应这种情况,因为我只将图片路径保存在我的数据库中?

下面是在 RecyclerView 中显示图片的代码

public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder> {

static List<GettersSetters> dbList;
static Context context;

ImageAdapter(Context context, List<GettersSetters> dbList) {
this.dbList = new ArrayList<GettersSetters>();
this.context = context;
this.dbList = dbList;

}

@Override
public ImageAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(
R.layout.item_image, null);

ViewHolder viewHolder = new ViewHolder(itemLayoutView);
return viewHolder;
}

@Override
public void onBindViewHolder(ImageAdapter.ViewHolder holder, int position) {

Bitmap img = decodeBitmapWithSize(dbList.get(position).getPath(),300,150, true);
holder.imageGallery.setImageBitmap(img);
}

@Override
public int getItemCount() {
return dbList.size();
}

public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

public ImageView imageGallery;

public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
imageGallery = (ImageView) itemLayoutView.findViewById(R.id.img_row);
itemLayoutView.setOnClickListener(this);
itemLayoutView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(context,"Delete Image",Toast.LENGTH_LONG).show();
return true;
}
});
}

@Override
public void onClick(View v) {

}
}

最佳答案

当您从路径中检索位图时,创建一个文件对象并检查该文件是否存在。如果它不存在,请忽略它。

 File file = new File(dbList.get(position).getPath());
if (file.exists()) {
//draw the bitmap here
}

关于android - 如何知道图像是否仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39532049/

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