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 @ 2020-03-31 15:53  依楼听雨眠  阅读(277)  评论(0)    收藏  举报