[英]Download image from asset to mobile intenal storage
我有這個適配器類。 我要實現的是,我在Assets文件夾中有幾張.png圖像,並在cardview中顯示了它們,並帶有一個按鈕,單擊該按鈕應將該特定圖像下載到手機的內存中。 我在網上嘗試了很多建議,但沒有幫助。 誰能解決我這個問題?
這里提到的ImageListingDao是dao類,具有id和imagepath的getter和setter。 我在資產文件夾中有數據庫,通過該數據庫我可以在卡中加載圖像。
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);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.