0

我创建了一个自定义视频库,它会填充您手机中的所有视频并将其显示给您。我已经成功地制作了画廊,是的,它显示的是视频的缩略图而不是视频。现在接下来的事情是选择一个或多个视频。

我已经关注了这个链接,但找不到合适的答案,我的代码在这里:

从 gridview 中选择多个图像

我已将网格视图的选择模式设置为 ListView.CHOICE_MODE_MULTIPLE但找不到它是否有效。如果用户想要取消选择视频缩略图,我需要一些边框来确定我是否实现了正确的代码是否具有取消选择模式。

第二件事我需要在可水平滚动的列表视图中的另一个活动中填充我的选择。

到目前为止,这是我的代码。除了我刚才提到的两个问题外,一切正常。我不想让复选框只是边框的东西,而是努力找到我的解决方案。我知道在这里我可以用最好的结果最好的人。

public class AddFragment extends Fragment {

private ImageButton imageButton;
private GridView gridView;

ArrayList<File> list = new ArrayList<>();

public AddFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_add, container, false);
    imageButton = (ImageButton) view.findViewById(R.id.gotoButton);
    gridView = (GridView) view.findViewById(R.id.grid_view);
    videoReader(Environment.getExternalStorageDirectory());
    gridView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    gridView.setAdapter(new ImageAdapter(getContext()));



    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            //for making the button visible as ssonas the item gets selected
            imageButton.setVisibility(view.VISIBLE);

        }
    });

    return view;
}

void videoReader(File root) {


    File[] file = root.listFiles();

        for (File aFile : file) {
            if (!aFile.isDirectory()) {
                if (aFile.getName().endsWith(".mp4")) {
                    Log.e("VIDEO_FILE=====", aFile.getName());
                    list.add(aFile);
                }
            } else {
                videoReader(aFile);
            }
        }
}


public class ImageAdapter extends BaseAdapter {

    private Bitmap bitmap;

    private final Context context;

    private ImageAdapter(Context c) {
        context = c;
    }

    //for the video numbers
    @Override
    public int getCount() {
        return list.size();
    }

    //for getting the video items position vise
    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup viewGroup) {

        ImageView picturesView;
        if (convertView == null) {
            picturesView = new ImageView(context);
            if (list.get(position).toString().contains(".jpg")) {
                bitmap = BitmapFactory.decodeFile(list.get(position).toString()); //Creation of Thumbnail of image
            } else {
                if (list.get(position).toString().contains(".mp4")) {
                    bitmap = ThumbnailUtils.createVideoThumbnail(list.get(position).toString(), 1); //Creation of Thumbnail of video
                }
            }
            picturesView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            //picturesView.setPadding(8, 8, 8, 8);
            picturesView.setLayoutParams(new GridView.LayoutParams(200,200));
            picturesView.setImageBitmap(bitmap);
        } else {
            picturesView = (ImageView) convertView;
        }

        return picturesView;
    }

} }

我又关注了一个链接,但它正在从画廊本身中挑选照片。我需要选择这些视频的缩略图,并将下一个活动中的视频作为缩略图获取,但是当我们选择视频时,视频将出现在 VideoView 中。

Android 从图库中选择多个图像,然后填充到 gridview

**编辑:**

我正在工作的输出

1. 这里视频的缩略图出现了,你可以看到选中的视频是红色边框的,页面是多选的,你也可以取消选择它。

第一页的图像

2. 现在这里是包含您从之前的视频缩略图中选择的所选视频的活动。PS您正在从一个片段进入编辑部分的活动,因此我们需要将选定的部分带到活动中。在下面,您可以看到视频的缩略图位于上一页中选择的底部。

编辑活动

4

0 回答 0