您的位置:首页 > 运维架构

Observer + onChange 实现video和images的监控

2013-06-25 15:04 295 查看
import android.app.Activity;
import android.database.ContentObserver;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.view.Gravity;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgObserver();
videoObserver();
}

private void imgObserver(){
//注册观察者,监听照片
final Uri uri = Uri.parse("content://media/external/images");
getContentResolver().registerContentObserver(uri, true, new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
//查询出第一条记录
Cursor c=getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, "_id DESC LIMIT 1");
//MediaStore.Images.Media.INTERNAL_CONTENT_URI
//MediaStore.Images.Media.EXTERNAL_CONTENT_URI
if(c.moveToNext()){
int imageId = c.getInt((c.getColumnIndex( MediaStore.Images.Media._ID)));
Bitmap bm = MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(),
imageId, MediaStore.Images.Thumbnails.MINI_KIND, null);

Toast toast = Toast.makeText(MainActivity.this, "刚才的IMG", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER,20, 69);
LinearLayout linearLayout =(LinearLayout)toast.getView();
ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageBitmap(bm);
linearLayout.addView(imageView,1);
toast.setView(linearLayout);
toast.show();
}
}
});
}

private void videoObserver(){
//注册观察者,监听视频
final Uri uri = Uri.parse("content://media/external/video");
getContentResolver().registerContentObserver(uri, true, new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
//查询出第一条记录
Cursor c=getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null, null, "_id DESC LIMIT 1");
if(c.moveToNext()){
int imageId = c.getInt((c.getColumnIndex( MediaStore.Video.Media._ID)));
Bitmap bm = MediaStore.Video.Thumbnails.getThumbnail(getContentResolver(),
imageId, MediaStore.Video.Thumbnails.MINI_KIND, null);

Toast toast = Toast.makeText(MainActivity.this, "刚才的Video", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER,20, 69);
LinearLayout linearLayout =(LinearLayout)toast.getView();
ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageBitmap(bm);
linearLayout.addView(imageView,1);
toast.setView(linearLayout);
toast.show();
}
}
});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: