android - 如何从android中的sdcard获取指定的视频?

标签 android listview gridview

我能够将 sdcard 中的所有视频显示到 ListView 中,但是如何在 android 中仅将 sdcard 中的指定视频显示到 Listview 中。有人可以帮忙吗?

-我正在 ListView 中显示所有视频。 -显示特定的视频文件。

这是我的代码。

         public class VideoStoredInSDCard extends Activity
   {
         private Cursor videoCursor;
         private int videoColumnIndex;
         ListView videolist;
         int count;
         String thumbPath;


       String[] thumbColumns = { MediaStore.Video.Thumbnails.DATA,MediaStore.Video.Thumbnails.VIDEO_ID };
      /** Called when the activity is first created. */
       @Override
       public void onCreate(Bundle savedInstanceState)
    {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       initialization();
    }

   private void initialization()
{
  System.gc();
   String[] videoProjection = { MediaStore.Video.Media._ID,MediaStore.Video.Media.DATA,MediaStore.Video.Media.DISPLAY_NAME,MediaStore.Video.Media.SIZE };

   videoCursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,videoProjection, null, null, null);
   count = videoCursor.getCount();

   videolist = (ListView) findViewById(R.id.PhoneVideoList);
   System.out.println("========gte Count of video List============== :" + videolist);
   videolist.setAdapter(new VideoListAdapter(this.getApplicationContext()));
   videolist.setOnItemClickListener(videogridlistener);
 }

 private OnItemClickListener videogridlistener = new OnItemClickListener() {
 public void onItemClick(AdapterView parent, View v, int position,long id)
 {
  System.gc();
   videoColumnIndex = videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
   videoCursor.moveToPosition(position);
   String filename = videoCursor.getString(videoColumnIndex);

  Log.i("FileName: ", filename);

Intent intent = new Intent(VideoStoredInSDCard.this, ViewVideo.class);
intent.putExtra("videofilename", filename);
startActivity(intent);
}};

public class VideoListAdapter extends BaseAdapter
 {
 private Context vContext;
 int layoutResourceId;

public VideoListAdapter(Context c)
 {
  vContext = c;
 }

 public int getCount()
 {
return videoCursor.getCount();
 }

public Object getItem(int position)
 {
   return position;
 }

 public long getItemId(int position)
 {
   return position;
 }

          public View getView(int position, View convertView, ViewGroup parent)
   {
           View listItemRow = null;
           listItemRow = LayoutInflater.from(vContext).inflate(R.layout.listitem, parent, false);

            TextView txtTitle = (TextView)listItemRow.findViewById(R.id.txtTitle);
            TextView txtSize = (TextView)listItemRow.findViewById(R.id.txtSize);
            ImageView thumbImage = (ImageView)listItemRow.findViewById(R.id.imgIcon);

      videoColumnIndex = videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME);
      videoCursor.moveToPosition(position);
      txtTitle.setText(videoCursor.getString(videoColumnIndex));

      videoColumnIndex = videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE);
      videoCursor.moveToPosition(position);
      txtSize.setText(" Size(KB):" + videoCursor.getString(videoColumnIndex));

       int videoId = videoCursor.getInt(videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));
       Cursor videoThumbnailCursor = managedQuery(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
       thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID+ "=" + videoId, null, null);

     if (videoThumbnailCursor.moveToFirst())
  {
      thumbPath = videoThumbnailCursor.getString(videoThumbnailCursor.getColumnIndex(MediaStore.Video.Thumbnails.DATA));
      Log.i("ThumbPath: ",thumbPath);

  }
     thumbImage.setImageURI(Uri.parse(thumbPath));
  System.out.println("============Thumbnail============== :" + videoThumbnailCursor);
     return listItemRow;

    }

}

最佳答案

我正在使用其他方式从 SD 卡中获取文件名。 我正在使用文件概念来执行此操作,如 How to display files on the SD card in a ListView?

关于android - 如何从android中的sdcard获取指定的视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9661683/

相关文章:

c# - 第三方 WPF 控件 : Devexpress vs Telerik

android - 将 gdata 提要转换为 xml - Youtube 播放列表到 ANdroid Listview

android - 使用 ObjectAnimator 后无法设置可见性

android - 如何在 View 分页器中的 fragment 内处理MediaPlayer对象

android - 使用游标填充后将项目添加到 ListView

java - 在Android中对ArrayList中的单个值下的数据列表进行分类。(参见说明)

android - ActivityResultContracts 使用户在画廊或相机之间选择上传图片的方式

android - Android 中 ScrollView 内的 Listview 高度问题

jquery - 从 asp.net GridView 中删除寻呼机行的边框

Android:GridView auto_fit 如何查找列数?