2011年12月31日土曜日

GridView From SDCard Video

GridViewを確認しました。各Viewには、SDカードに格納されているVideoクリップの画像を表示します。

GridViewの各Viewのために、BaseAdatpterのサブクラスを作成しました。
getCount(), getItem(), getItemId(), getView()をOverrideしました。
getView()でImageViewをVideoクリップから作成しています。
getCount()は、SD Cardに含まれるVideoクリップの数を返します。
public int getCount() {
 Cursor c = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null, null,null);
 return c.getCount();
}

getItem()は未使用です。
public Object getItem(int arg0) {
 return null;
}
getItemId()も未使用です。
public long getItemId(int position) {
 return 0;
}
次は、getView()です。

Cursorを生成して、positionを移動します。本Appでは、Viewのposition = Cursorのpositionとしています。.
Cursor c = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null, null,null);
c.moveToPosition(position);
CursorからVideoクリップの格納場所(Path)を取得します。
int dataIndex = c.getColumnIndex(MediaStore.Video.Media.DATA);
String path = c.getString(dataIndex);
ビデオクリップからBitmapを生成します。
Bitmap bmp = ThumbnailUtils.createVideoThumbnail(path,MediaStore.Video.Thumbnails.MINI_KIND );
BitmapをImageViewに格納します。
imageView.setImageBitmap(bmp);
BaseAdapterのサブクラスをGridViewにAdapterします。
mGridView = (GridView)findViewById(R.id.gridView1);
mGridView.setAdapter(new ImageAdapter());
ソースコードです。.

0 件のコメント:

コメントを投稿