开博客为自己的工作做一个记录
MainActivity .class
public class MainActivity extends Activity {
public static ListUpVideo .class
public class UpVideo extends Activity {
public static List
GridHolder holder;
Cursor cursor;
GridView GridView1;
MyGridAdapter adapter;
protected ImageLoader imageLoader;
DisplayImageOptions options;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.up_video);
GridView1 = (GridView) findViewById(R.id.GridView1);
data = new ArrayList
adapter = new MyGridAdapter(UpVideo.this);
imageLoader = ImageLoader.getInstance();
optiOns= new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片
.showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片
.cacheInMemory(true)// 设置下载的图片是否缓存在内存中
.cacheOnDisk(true)// 设置下载的图片是否缓存在SD卡中
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)// 设置图片以如何的编码方式显示
.bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型//
.resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位
.displayer(new RoundedBitmapDisplayer(100))// 是否设置为圆角,弧度为多少
.displayer(new FadeInBitmapDisplayer(100))// 是否图片加载好后渐入的动画时间
.build();// 构建完成
// 检测SD卡是否存在
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
setVideoList();
} else {
Toast.makeText(this, "没有SD卡", Toast.LENGTH_LONG).show();
}
GridView1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView> arg0, View arg1, int arg2, long arg3) {
int s = Integer.parseInt(data.get(arg2).getSize());
if (s > 10) {
Toast.makeText(UpVideo.this, "这个文件过大不能超过10mb", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(UpVideo.this, data.get(arg2).getTitle() + "就这个", Toast.LENGTH_LONG).show();
Intent in=new Intent();
in.putExtra("name",data.get(arg2).getTitle());
in.putExtra("path",data.get(arg2).getPath());
in.putExtra("ThumbPath",data.get(arg2).getThumbPath());
setResult(RESULT_OK,in);
finish();
}
}
});
}
private void setVideoList() {
/**
* MediaStore.Video.Thumbnails.DATA:视频缩略图的文件路径
*/
String[] thumbColumns = { MediaStore.Video.Thumbnails.DATA, MediaStore.Video.Thumbnails.VIDEO_ID };
/**
* MediaStore.Video.Media.DATA:视频文件路径;
* MediaStore.Video.Media.DISPLAY_NAME : 视频文件名,如 testVideo.mp4
* MediaStore.Video.Media.TITLE: 视频标题 : testVideo
*/
String[] mediaColumns = { MediaStore.Video.Media._ID, MediaStore.Video.Media.DATA, MediaStore.Video.Media.TITLE, MediaStore.Video.Media.MIME_TYPE, MediaStore.Video.Media.DISPLAY_NAME };
cursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);
if (cursor == null) {
Toast.makeText(UpVideo.this, "没有找到可播放视频文件", 5000).show();
return;
} else
if (cursor.moveToFirst()) {
do {
VideoInfo info = new VideoInfo();
int id = cursor.getInt(cursor.getColumnIndex(MediaStore.Video.Media._ID));
Cursor thumbCursor = managedQuery(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI, thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID + "=" + id, null, null);
if (thumbCursor.moveToFirst()) {
info.setThumbPath(thumbCursor.getString(thumbCursor.getColumnIndex(MediaStore.Video.Thumbnails.DATA)));
}
info.setPath(cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA)));
info.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE)));
info.setDisplayName(cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME)));
File dF = new File(info.getPath());
FileInputStream fis;
int fileLen = 0;
try {
fis = new FileInputStream(dF);
fileLen = fis.available(); // 这就是文件大小
int d = fileLen / 1024 / 1024;
info.setSize(d + "");
Log.i("hao", fileLen + "大小" + d + "MB");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
info.setMimeType(cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE)));
data.add(info);
} while (cursor.moveToNext());
GridView1.setAdapter(adapter);
} else {
System.out.println(data.size() + "");
if (data.size() == 0) {
Toast.makeText(UpVideo.this, "没有找到可播放视频文件", 5000).show();
}
}
}
private static class GridHolder {
ImageView image;
TextView size, name;
}
public class MyGridAdapter extends BaseAdapter {
private Context context;
private LayoutInflater mInflater;
public MyGridAdapter(Context context) {
super();
this.mInflater = LayoutInflater.from(context);
}
public int getCount() {
return data.size();
}
@Override
public Object getItem(int index) {
return data.get(index);
}
@Override
public long getItemId(int index) {
return index;
}
@Override
public View getView(int index, View convertView, ViewGroup parent) {
holder = null;
if (cOnvertView== null) {
holder = new GridHolder();
cOnvertView= mInflater.inflate(R.layout.video_item, null);
holder.image = (ImageView) convertView.findViewById(R.id.image);
holder.size = (TextView) convertView.findViewById(R.id.size);
holder.name = (TextView) convertView.findViewById(R.id.name);
convertView.setTag(holder);
} else {
holder = (GridHolder) convertView.getTag();
}
holder.name.setText(data.get(index).getTitle());
holder.size.setText(data.get(index).getSize() + "MB");
String imageUri = "file://" + data.get(index).getThumbPath();
System.out.println("w" + imageUri);
imageLoader.displayImage(imageUri, holder.image, options);
// BitmapDrawable bd = new
// BitmapDrawable(getVideoThumbnail(data.get(index).getPath(), 150,
// 150, Thumbnails.MINI_KIND));
// holder.image.setBackgroundDrawable(bd);
return convertView;
}
}
private Bitmap getVideoThumbnail(String videoPath, int width, int height, int kind) {
Bitmap bitmap = null;
// 获取视频的缩略图
bitmap = ThumbnailUtils.createVideoThumbnail(videoPath, kind);
System.out.println("w" + bitmap.getWidth());
System.out.println("h" + bitmap.getHeight());
bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
return bitmap;
}
}
}
VideoInfo .class
public class VideoInfo {
String ThumbPath,Path,Title,MimeType,DisplayName,Size;
public String getSize() {
return Size;
}
public void setSize(String size) {
Size = size;
}
public String getThumbPath() {
return ThumbPath;
}
public void setThumbPath(String thumbPath) {
ThumbPath = thumbPath;
}
public String getPath() {
return Path;
}
public void setPath(String path) {
Path = path;
}
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getMimeType() {
return MimeType;
}
public void setMimeType(String mimeType) {
MimeType = mimeType;
}
public String getDisplayName() {
return DisplayName;
}
public void setDisplayName(String displayName) {
DisplayName = displayName;
}
}
代码比较简单