80,349
社区成员
发帖
与我相关
我的任务
分享
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.MediaStore;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import com.example.dfy.musicbox.adapter.VideoAdapter;
import com.example.dfy.musicbox.domain.MediaItem;
import java.util.ArrayList;
public class VideoListActivity extends Activity {
private ListView listView;
private TextView no_video;
private VideoAdapter videoAdapter;
private ArrayList<MediaItem> mediaItems;
//private Context context;
public VideoListActivity(Context context) {
super(context);
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (mediaItems != null && mediaItems.size() > 0) {
//有数据,设置适配器
videoAdapter = new VideoAdapter(context,mediaItems);
no_video.setVisibility(View.GONE);
listView.setAdapter(videoAdapter);
} else {
no_video.setVisibility(View.VISIBLE);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video_list_activity);
listView = (ListView) findViewById(R.id.listview);
no_video = (TextView) findViewById(R.id.no_video);
//设置适配器
//读取数据—在子线中读取
new Thread() {
public void run() {
//读取数据—到准备好的数据库中读取
mediaItems = new ArrayList<MediaItem>();
Uri contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String[] projection = {
MediaStore.Video.Media.DISPLAY_NAME,//在sdcard上的名字
MediaStore.Video.Media.DURATION,//时间,单位毫秒
MediaStore.Video.Media.SIZE,//大小bytes
MediaStore.Video.Media.DATA,//绝对路径
MediaStore.Video.Media.ARTIST//艺术家
};
// int max = 1024 * 1024 * 1000;//视频大小的上限
int min = 1024 * 1024 * 5;//视频下限
// String selection=MediaStore.Video.Media.SIZE+">?";//限制条件
String selection = "select _size from audio where _size> ? ";
ContentResolver videoRes = getContentResolver(); //实例化ContentREsolver类
Cursor cursor = videoRes.query(contentUri, projection, selection, new String[]{String.valueOf(min)}, null);//通过查询路径为uri的数据库的数据获取数据集的指针
if (cursor != null) {
while (cursor.moveToNext()) {
MediaItem item = new MediaItem();
String name = cursor.getString(0);//名字
item.setName(name);
long duration = cursor.getLong(1);//时长
item.setDuration(duration);
long size = cursor.getLong(2);//大小
item.setSize(size);
String data = cursor.getString(3);
item.setData(data);
//将对象加入到ArrayList中
mediaItems.add(item);
}
//发送消息更新
handler.sendEmptyMessage(0);
}
cursor.close();
}
}.start();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
MediaItem mediaItem=mediaItems.get(position);
Intent intent = new Intent(context,VideoListActivity.class);
intent.setDataAndType(Uri.parse(mediaItem.getData()),"video/*");
startActivity(intent);
}
});
}
}