Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取视频缩略图并在ListView中显示(仅适用于Android Genius)_Android_Listview - Fatal编程技术网

获取视频缩略图并在ListView中显示(仅适用于Android Genius)

获取视频缩略图并在ListView中显示(仅适用于Android Genius),android,listview,Android,Listview,我目前有一种方法可以从设备中获取所有视频并显示在列表视图中。目前,我仅显示相册名称和标题,其中包含缩略图的默认图像,该缩略图在列表视图的所有行中重复出现。这样做的方法是 try { mAdapter = new SimpleCursorAdapter( this, // Use a template that displays a text view R.layout.medi

我目前有一种方法可以从设备中获取所有视频并显示在
列表视图中。目前,我仅显示相册名称和标题,其中包含缩略图的默认图像,该缩略图在
列表视图的所有行中重复出现。这样做的方法是

    try {
        mAdapter = new SimpleCursorAdapter(
                this,
                // Use a template that displays a text view
                R.layout.media_select_row,
                null,
                // Map from database columns...
                new String[] {
                    MediaStore.Video.Media.ALBUM,
                    MediaStore.Video.Media.TITLE,
                    MediaStore.Video.Media._ID},
                    // To widget ids in the row layout...
                new int[] {
                    R.id.row_album,
                    R.id.row_title,
                    R.id.row_icon,},
                0);

        setListAdapter(mAdapter);

        getListView().setItemsCanFocus(true);

        // Normal click - open the editor
        getListView().setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent,
                    View view,
                    int position,
                    long id) {

                Cursor c = mAdapter.getCursor();
                int dataIndex = c.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
                String filename = c.getString(dataIndex);

                videoFilename = filename;

                String substr = videoFilename.substring(videoFilename.length() - 3);

                if(substr.equals("mp4")) {
                    if(callPath == 1) {
                        Intent intent = new Intent(DubVideoList.this, DubStudio.class);
                        intent.putExtra("videoPath", videoFilename);
                        startActivity(intent);
                    }else if(callPath == 2){
                        Intent intent = new Intent(DubVideoList.this, DubStudioBeta.class);
                        intent.putExtra("videoPath", videoFilename);
                        startActivity(intent);
                    }
                }else{
                    Toast.makeText(DubVideoList.this,getString(R.string.mp4_support),Toast.LENGTH_LONG).show();
                }
            }
        });

        mInternalCursor = null;
        mExternalCursor = null;
        getLoaderManager().initLoader(INTERNAL_CURSOR_ID, null, this);
        getLoaderManager().initLoader(EXTERNAL_CURSOR_ID, null, this);

    } catch (SecurityException e) {
        // No permission to retrieve video?
        Log.e("SecurityError", e.toString());

        // TODO error 1
    } catch (IllegalArgumentException e) {
        // No permission to retrieve video?
        Log.e("IllegalArgument", e.toString());

        // TODO error 2
    }

    mAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
        public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
          if (view.getId() == R.id.row_icon) {
                setSoundIconFromCursor((ImageView) view, cursor);
                return true;
            }

            return false;
        }
    });

要获取缩略图,可以使用以下代码

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(video_path,
MediaStore.Images.Thumbnails.MINI_KIND);

使用此代码在listview中添加视频缩略图

方法:1

位图bMap=ThumbnailUtils.createVideo缩略图(“本地文件路径”, MediaStore、视频、缩略图、迷你型); MViewHolder.imageThumb.setImageBitmap(bMap)

方法:2

使用滑翔

编译'com.github.bumptech.glide:glide:3.7.0'

滑动
.与(上下文) .load(Uri.fromFile(新文件(文件路径)))
.into(MViewHolder.imageThumb)

只是你必须通过视频url或路径获得缩略图。。。您可以将其放在Adapter getView()方法中,并显示该图像而不是默认图像我没有使用任何自定义的
适配器
。那我该怎么做呢?请给我一个合适的解决方案。我上面有我所有的代码。
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(video_path,
MediaStore.Images.Thumbnails.MINI_KIND);