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

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下载网络图片到本地
  2. android 图片叠加效果
  3. android中获取网络图片
  4. Android屏幕截图并保存截取屏幕的图片到指定文件
  5. Android保存图片到本地或者数据库,并通知相册更新
  6. android两种方式实现圆形图片
  7. android Imageview 图片覆盖具体实现
  8. Android 缩放图片

随机推荐

  1. SQL Server误区30日谈 第28天 有关大容量
  2. SQL Server误区30日谈 第27天 使用BACKUP
  3. SQL Server误区30日谈 第25天 有关填充因
  4. SQL Server误区30日谈 第26天 SQL Server
  5. SQL Server误区30日谈 第24天 26个有关还
  6. SQL Server误区30日谈 第23天 有关锁升级
  7. SQL Server误区30日谈 第22天 资源调控器
  8. SQL Server误区30日谈 第21天 数据损坏可
  9. SQL Server误区30日谈 第20天 破坏日志备
  10. Android