【问题标题】:BottomSheet Image PickerBottomSheet 图像选择器
【发布时间】:2018-11-25 04:43:38
【问题描述】:

我有一个项目需要上传一些图片。我已经成功完成了,但是用户必须单击 6 个按钮才能在屏幕上显示 6 个图像。效率不是很高,所以我四处打听,被告知要使用 imagepicker。

我已经实现了这个https://github.com/siralam/BSImagePicker,它让一切变得简单,但我真的很挣扎(不知道)如何让这些图像上传到存储并将路径存储在数据库中。

我知道的方法是在 onActivityResult 上获取mimage1Uri = data.getData();

有人可以帮我获取 uri 吗?

如果您觉得这个问题负担过重,我深表歉意。

public class PostFragment extends Fragment implements BSImagePicker.OnMultiImageSelectedListener {

    private ImageView ivImage1, ivImage2, ivImage3, ivImage4, ivImage5, ivImage6;
    private EditText mTitle, mDescription, mPrice, mCountry, mStateProvince, mCity, mContactEmail;
    private Button mPost;
    private ProgressBar mProgressBar;
    private double mProgress = 0;
    private Uri mSelectedUri;
    private Uri mSelectedUri1;
    private byte[] mUploadBytes;


    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        View view = inflater.inflate(R.layout.fragment_post, container, false);
        ivImage1 = view.findViewById(R.id.iv_image1);
        ivImage2 = view.findViewById(R.id.iv_image2);
        ivImage3 = view.findViewById(R.id.iv_image3);
        ivImage4 = view.findViewById(R.id.iv_image4);
        ivImage5 = view.findViewById(R.id.iv_image5);
        ivImage6 = view.findViewById(R.id.iv_image6);
        mTitle = view.findViewById(R.id.input_title);


        getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);


        view.findViewById(R.id.tv_multi_selection).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                BSImagePicker pickerDialog = new BSImagePicker.Builder("")
                        .setMaximumDisplayingImages(Integer.MAX_VALUE)
                        .isMultiSelect()
                        .setMinimumMultiSelectCount(3)
                        .setMaximumMultiSelectCount(6)
                        .build();
                pickerDialog.show(getChildFragmentManager(), "picker");
            }
        });

        startPosting();

        return view;
    }
        public void onMultiImageSelected(List<Uri> uriList, String tag) {
        for (int i = 0; i < uriList.size(); i++) {

            if (i >= 6) return;
            ImageView iv;
            switch (i) {
                case 0:
                    iv = ivImage1;

                    break;
                case 1:
                    iv = ivImage2;
                    break;
                case 2:
                    iv = ivImage3;
                    break;
                case 3:
                    iv = ivImage4;
                    break;
                case 4:
                    iv = ivImage5;
                    break;
                case 5:
                default:
                    iv = ivImage6;
            }
            Glide.with(this).load(uriList.get(i)).into(iv);

【问题讨论】:

    标签: android firebase firebase-realtime-database firebase-storage


    【解决方案1】:

    听起来很简单……

    public void onMultiImageSelected(List<Uri> uriList, String tag) { 
        for (int i = 0; i < uriList.size(); i++) { 
            Uri image = uriList.get(i);
            // Do something with Uri of this image
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 2012-10-02
      • 2023-01-04
      • 2011-01-23
      相关资源
      最近更新 更多