【Android】获取所有jpg和png图片

来源:互联网 发布:韦德上赛季场均数据 编辑:程序博客网 时间:2024/06/07 06:25

import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.provider.MediaStore;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends Activity {private ListView mLvTest;private MyAdapter mAdapter;private List<String> pathList = new ArrayList<String>();private Handler mHandler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mLvTest = (ListView) findViewById(R.id.lv_test);mAdapter = new MyAdapter(this, pathList);mLvTest.setAdapter(mAdapter);getImages();mHandler = new Handler(){public void handleMessage(android.os.Message msg) {if(msg.what==1){pathList.add(msg.obj+"");mAdapter.notifyDataSetChanged();}}};}/*** 扫描手机中的jpg和png图片*/private void getImages() {if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){Toast.makeText(this, "暂无外部存储", Toast.LENGTH_SHORT).show();return;}new Thread(new Runnable() {@Overridepublic void run() {Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;ContentResolver mContentResolver = MainActivity.this.getContentResolver();Cursor mCursor = mContentResolver.query(mImageUri, null,MediaStore.Images.Media.MIME_TYPE + "=? or "+ MediaStore.Images.Media.MIME_TYPE + "=?",new String[] { "image/jpeg", "image/png" }, MediaStore.Images.Media.DATE_MODIFIED);while (mCursor.moveToNext()) {String path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA));Message msg = mHandler.obtainMessage();msg.obj = path;msg.what = 1;mHandler.sendMessage(msg);}mCursor.close();}}).start();}}public class MyAdapter extends BaseAdapter {private List<String> list;private Context contex; public MyAdapter(Context context,List<String> list) {// TODO Auto-generated constructor stubthis.list = list;this.contex = context;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}@Overridepublic String getItem(int position) {// TODO Auto-generated method stubreturn list.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder viewHolder = null;if(convertView==null){convertView = LayoutInflater.from(contex).inflate(R.layout.item, null);viewHolder = new ViewHolder();viewHolder.tvPath = (TextView) convertView.findViewById(R.id.tv_path);convertView.setTag(viewHolder);}else {viewHolder = (ViewHolder) convertView.getTag();}viewHolder.tvPath.setText(list.get(position));return convertView;}private class ViewHolder{public TextView tvPath;}}