android 实现照相功能 照片存放在SID卡中,将照片显示在Image中

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);

			}
		});

	}

 

posted @ 2015-06-11 13:36  水蓝色的梦  阅读(618)  评论(0编辑  收藏  举报