내 앱이 앨범을 만들고 사용자가 앨범에 추가 할 이미지를 선택합니다.이미지가 있는지 계속 확인하는 방법
데이터베이스에 선택한 이미지 경로를 저장하고 해당 경로를 검색하여 Bitmap으로 변환 한 다음 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) {
}
}
경로가 유효한지 확인하십시오 ...? –
DB에서 확인하십시오. –
이미지가 표시 될 때마다 파일이 존재하는지 여부를 확인할 수 있습니다. –