public class Main extends Activity { private final String TAG = "org.fighter.image"; private final int LOAD_IMAGE = 101; private Button btnLoadPicture; private ImageView imgView; private OnClickListener btnListener; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mian); this.initWidget(); this.initParam(); this.initBtnListener(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.mian, menu); return true; } /* * 当应用使用了startActivityForResult(Intent,int) 方法时, 执行完Intent后,回调 * onActivityResult 方法 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 如果用户选择的条件为是,则有数据返回... if (RESULT_OK == resultCode && requestCode == LOAD_IMAGE && null != data) { Uri selectedImageUri = data.getData(); Log.i(TAG, "选择图片的路径为:" + selectedImageUri.toString()); // 列表 String[] filePathColumn = {MediaStore.Images.Media.DATA }; // 使用游标 指定了列表,可以加快效率 Cursor imageData = getContentResolver().query(selectedImageUri, filePathColumn, null, null, null); // 将游标指向第一行 imageData.moveToFirst(); { // 获取列表的条数 int rows = imageData.getCount(); for (int i = 0; i < rows; i++) { Log.i(TAG,"游标中的数据" + imageData.getString(i)); } } // 获取当前游标在的列的数据 int columnIndex = imageData.getColumnIndex(filePathColumn[0]); String imagePath = imageData.getString(columnIndex); Bitmap selectedImage = BitmapFactory.decodeFile(imagePath); this.imgView.setImageBitmap(selectedImage); } } /* 初始化部件 */ private void initWidget() { this.btnLoadPicture = (Button) findViewById(R.id.btnLoadPicture); this.imgView = (ImageView) findViewById(R.id.imgView); } /* 初始化变量 */ private void initParam() { this.btnListener = new BtnOnClickListenerImpl(); } private void initBtnListener() { this.btnLoadPicture.setOnClickListener(this.btnListener); } class BtnOnClickListenerImpl implements OnClickListener { @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnLoadPicture: btnLoadPicture((Button) v); break; default: break; } } /* * 打开图片选择器,最后选择后图片返回 */ private void btnLoadPicture(Button btn) { Intent intent = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, LOAD_IMAGE); } } }
获取系统中的图片资源
猜你喜欢
转载自zyzzsky.iteye.com/blog/1754301
今日推荐
周排行