开博客为自己的工作做一个记录

MainActivity .class

public class MainActivity extends Activity {

public static List data = null;// 视频信息集合
Cursor cursor;
Button Button1;
String path;
ImageView image;
TextView namet;
protected ImageLoader imageLoader;
DisplayImageOptions options;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("hao", "1");
Button1 = (Button) findViewById(R.id.Button1);
image = (ImageView) findViewById(R.id.image);
namet = (TextView) findViewById(R.id.name);
data = new ArrayList();
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();// 构建完成
Button1.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
Intent in = new Intent(MainActivity.this, UpVideo.class);
startActivityForResult(in, 1);


}
});

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);


switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String url = "file://" + data.getStringExtra("ThumbPath");
String name = data.getStringExtra("name");
path = data.getStringExtra("path");
namet.setText(name + "\n地址:\n" + path);
imageLoader.displayImage(url, image, options);
}
}


}



UpVideo .class

public class UpVideo extends Activity {
public static List data = null;// 视频信息集合
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;
}

}

代码比较简单 

更多相关文章

  1. android屏幕旋转在framework中的修改。
  2. Android下载网络图片到本地
  3. android 图片叠加效果
  4. android中的Bitmap用法小结
  5. Android(安卓)给TextView 添加图片(左右等)
  6. Android(安卓)studio一些设置项
  7. Android(安卓)9编译报错sdclang设置
  8. android实现猜扑克牌小游戏(改进:每次只可以选择一张)
  9. Android给ListView设置分割线Divider样式

随机推荐

  1. 关于getSystemService
  2. Android(安卓)Studio文件夹颜色问题
  3. Android入门之addWindow
  4. Android软件中嵌入地图之二:百度地图
  5. android 中自动更新时间机制
  6. Android利用activity启动模式退出整个应
  7. Android开发,addlistener和setlistener的
  8. Android之ExpandableListView的属性(Group
  9. 2011.07.12(3)——— android ui的一些概念
  10. Android(安卓)内存泄漏LeakCanary使用详