【问题标题】:How to display video in gallery view like image?如何在画廊视图中显示视频,如图像?
【发布时间】:2013-02-02 21:10:40
【问题描述】:

我已经创建了一个画廊视图,我想显示视频(就像任何视频链接一样),我已经这样做了

http://mihaifonoage.blogspot.com/2009/09/displaying-images-from-sd-card-in.html

但它什么也没显示。我花了一整天但没有结果。请帮帮我。

提前致谢。

【问题讨论】:

  • 正在尝试在图库中显示视频文件的数量?
  • @YugandharBabu 是的,我想在图库中显示没有文件

标签: android gallery


【解决方案1】:

我已经得到答案了。

我需要创建每个视频缩略图并将它们显示到这样的画廊中

Bitmap bm = ThumbnailUtils.createVideoThumbnail(path1.getPath()+"/"+filenames1[position], MediaStore.Images.Thumbnails.MINI_KIND); 

然后每个视频都会像图片一样显示在图库中。

【讨论】:

    【解决方案2】:

    我不太明白你需要什么,但如果你只是想在活动中打开一个视图,也许一个好方法是使用 ACTION_VIEW 意图 - 这样做的本机方式。

    public void startVideo(String videoAddress){
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file
            activity.startActivity(intent);
        }
    

    但是,此意图会提示您的用户为视频选择播放器。在我的大多数情况下,我发现使用 VideoView 标签更有用 - 只需全屏显示视频:

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <VideoView
            android:id="@+id/video_view"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center" />
    
    </FrameLayout>
    

    如果您希望能够在多个视频之间浏览,您可以使用手势检测器实现新视频的加载:

    GestureDetector gestureDetector = new GestureDetector(new MyGestureDetector() {
    
        @Override
        public void swipeRight() {
            if (currentArticle > 0) {
                currentArticle--;
                loadPage();
            }
    
        }
    
        @Override
        public void swipeLeft() {
            if (currentArticle == articleList.size()) {
                return;
            } else {
                currentArticle++;
                loadPage();
            }
        }
    
    });
    
    View.OnTouchListener gestureListener = new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            return gestureDetector.onTouchEvent(event);
        }
    };
    

    希望我的一些建议对你有用!

    【讨论】:

    • 谢谢,但对我没用。我要询问图库中的视频数量
    • 最后一点不满足您的需求吗?如果我理解正确,您需要一次显示一个视频吗?之后您可以使用手势检测器左右滑动...
    【解决方案3】:

    要直接从 GridView 播放视频,您必须在以下函数中传递视频 url

    public void playVideo(String url){

        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.parse("file://" + url), "video/*");
        startActivity(intent);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多