protected static final int CAMERA_RESULT = 0; private String fileName; private Button takePhotoBn; private String imageFilePath; private ImageView imv; @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, intent); // 如果拍照成功 if (resultCode == RESULT_OK) { // Bundle extras = intent.getExtras(); // Bitmap bmp = (Bitmap)extras.get("data"); imv = (ImageView) findViewById(R.id.imageView1); // 取得屏幕的显示大小 Display currentDisplay = getWindowManager().getDefaultDisplay(); int dw = currentDisplay.getWidth(); int dh = currentDisplay.getHeight(); // 对拍出的照片进行缩放 BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options(); bmpFactoryOptions.inJustDecodeBounds = true; Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions); int heightRatio = (int) Math.ceil(bmpFactoryOptions.outHeight / (float) dh); int widthRatio = (int) Math.ceil(bmpFactoryOptions.outWidth / (float) dw); if (heightRatio > 1 && widthRatio > 1) { if (heightRatio > widthRatio) { bmpFactoryOptions.inSampleSize = heightRatio; } else { bmpFactoryOptions.inSampleSize = widthRatio; } } bmpFactoryOptions.inJustDecodeBounds = false; bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions); try { MediaStore.Images.Media.insertImage(getContentResolver(), imageFilePath, fileName, null); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } imv.setImageBitmap(bmp); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView mImageView = (ImageView) findViewById(R.id.image); takePhotoBn = (Button) findViewById(R.id.button1); imv = (ImageView) findViewById(R.id.imageView1); // 点击Photo Button按钮照相 takePhotoBn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { fileName = System.currentTimeMillis() + ".jpg"; File appDir = new File(Environment.getExternalStorageDirectory(), "ImageFile"); if (!appDir.exists()) { appDir.mkdir(); } imageFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/ImageFile/"+fileName; System.out.println("====imageFilePath===="+imageFilePath); File imageFile = new File(imageFilePath); Uri imageFileUri = Uri.fromFile(imageFile); Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri); startActivityForResult(i, CAMERA_RESULT); } }); }
时间: 2024-10-10 02:49:44