Изображение извлечено из хранилища Firebase в recyclerView, и я хочу сохранить его во внутреннем хранилище.метод для кнопки, чтобы выполнить? - PullRequest
0 голосов
/ 04 июля 2019

Проблема при сохранении изображений из RecyclerView, полученного из хранилища Firebase.

Что такое код для сохранения изображения во внутренней памяти, когда мы выбираем кнопку загрузки download_btn?

// СПОСОБ СОХРАНЕНИЯ ИЗОБРАЖЕНИЯ ВНУТРЕННЕГО ХРАНЕНИЯ ..................

MyAdapter.java

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<List_data>list_data;
    private Context ct;

    public MyAdapter(List<List_data> list_data, Context ct) {
        this.list_data = list_data;
        this.ct = ct;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                                  .inflate(R.layout.list_data, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
        StorageReference storage = FirebaseStorage.getInstance().getReference();
        final List_data ld = list_data.get(position);
        holder.tvname.setText(ld.getName());
        final StorageReference fileRef = storage.child(ld.getImgUrl());

        final long ONE_MEGABYTE = 1024*1024*5;
        fileRef.getBytes(ONE_MEGABYTE)
               .addOnSuccessListener(new OnSuccessListener<byte[]>() {
                   @Override
                   public void onSuccess(byte[] bytes) {
                       Bitmap bitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.length);
                       holder.imageView.setImageBitmap(bitmap);
                   }
               })
               .addOnFailureListener(new OnFailureListener() {
                   @Override
                   public void onFailure(@NonNull Exception e) {

                   }
               });

        holder.download_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                // METHOD OF SAVING IMAGE INTO INTERNAL STORAGE

            }
        });
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        private ImageView imageView;
        private TextView tvname;
        private Button download_btn;

        public ViewHolder(View itemView) {
            super(itemView);
            imageView=(ImageView)itemView.findViewById(R.id.img_view);
            tvname=(TextView)itemView.findViewById(R.id.uName);
            download_btn = itemView.findViewById(R.id.download_pic_btn);
            //download_btn.setTag(123,itemView);
        }
    }
}

идентификатор кнопки: download_btn.

...