2016-09-22 55 views
0

我想在GridView中显示存储在SD卡内的所有视频。我遵循this tutorial并将其更改为适合我的需要。下面是我为getview()代码我CustomAdapter在GridView中显示SD卡中存储的视频

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

     TextView txtTitle = (TextView)listItemRow.findViewById(R.id.txtTitle); 
     ImageView thumbImage = (ImageView)listItemRow.findViewById(R.id.videocapture); 
     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); 
     int videoId = videoCursor.getInt(videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID)); 
     Cursor videoThumbnailCursor = getContentResolver().query(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)); 
     } 
     thumbImage.setImageURI(Uri.parse(thumbPath)); 
     thumbImage.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(VideoStoredInSDCardActivity.this,"Video Clicked",Toast.LENGTH_SHORT).show(); 
       Intent intent=new Intent(VideoStoredInSDCardActivity.this,SampleVideoActivity.class); 
       startActivity(intent); 

      } 
     }); 

     return listItemRow; 

} 

里面我现在面临的问题是,我收到相同的缩略图(第一视频缩略图)为我所有的视频。

上述代码有什么问题?

此外,我怎样才能得到我的onClickListener里面点击的视频文件用户的路径?

在此先感谢!

+0

看到这个例子的HTTP保持在getView方法的位置://www.androiddevelopersolutions。 com/2013/12/android-play-video-from-sd-card.html –

+0

@VishalThakkar,谢谢!上面给出的例子经过少许修改后才起作用 – Exception

回答

0

您时刻为第一位置路径与此videoThumbnailCursor.moveToFirst()

需要根据位置