Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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
Android 如何显示存储在sd卡特定文件夹中的所有视频缩略图_Android_Thumbnails_Sd Card - Fatal编程技术网

Android 如何显示存储在sd卡特定文件夹中的所有视频缩略图

Android 如何显示存储在sd卡特定文件夹中的所有视频缩略图,android,thumbnails,sd-card,Android,Thumbnails,Sd Card,我从MediaStore得到的位图是这样的 public class VideoStoredInSDCard extends Activity { private Cursor videoCursor; private int videoColumnIndex; ListView videolist; int count; String thumbPath; String[] thumbColumns = { MediaStore.Video.T

我从MediaStore得到的位图是这样的

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

 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(VideoActivity.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.Thumbna     ils.DATA));
 Log.i("ThumbPath: ",thumbPath);

 }
thumbImage.setImageURI(Uri.parse(thumbPath));

 return listItemRow;

 }

 }

  }

如何从sd卡中的特定文件夹中获取缩略图。我正在使用本教程

可以通过以下方式轻松完成:

int videoId = videoCursor.getInt(videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));

ContentResolver cr = getContentResolver();
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 1;
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(cr, videoId, MediaStore.Video.Thumbnails.MICRO_KIND, options);
thumbImage.setImageBitmap(curThumb);