2012-01-31 227 views
1

我创建了一个画廊看法,我想显示视频(像任何视频链接),我有这样的如何在图库视图中显示视频,如图像?

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

,但其显示没有奏效。我花了整整一天,但没有结果。请帮帮我。

在此先感谢。

+0

试图在画廊中显示的视频文件数量? – 2012-01-31 13:36:36

+0

@YugandharBabu是的我想要在图库中显示没有文件 – Newts 2012-02-01 04:07:04

回答

4

我已经得到了我的答案。

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

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); 
    } 
}; 

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

+0

谢谢,但对我无用。我在询问图库中的视频数量 – Newts 2012-02-01 04:42:52

+0

是不是最后一位符合您的需求?如果我能正确理解你,你需要一次显示一个视频? Afterwords可以使用手势检测器左右滑动... – 2012-02-01 07:55:24

0

直接从GridView控件播放视频,你必须通过视频链接在下面的函数

公共无效的playVideo(字符串URL){

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