如何在我的应用程序中附加使用相机拍摄的照片?

时间:2012-03-15 06:44:35

标签: java android android-layout android-emulator android-widget

我正在开发一个应用程序,我使用按钮加载相机,需要在我的应用程序中附加这些图片。我没有加载相机的问题,但我无法附加我在我的应用程序中使用相机拍摄的照片。任何人都可以提供一个好的解决方案吗?

谢谢(提前) Swetha Kaulwar。

1 个答案:

答案 0 :(得分:2)

我在我的onActivityResult中执行此操作...我从捕获意图中获取图片减小其大小并将其添加到列表中,该列表稍后会添加到自定义列表中...我希望这有助于您的问题

if (resultCode == Activity.RESULT_OK) {

            Bundle extras = intent.getExtras();
            Bitmap bitmap = (Bitmap) extras.get("data");


             int width = bitmap.getWidth();
             Log.i("size width:", String.valueOf(width));
             int height = bitmap.getHeight();
             Log.i("size height:", String.valueOf(height));

             float widthPercent = (float) 0.8;
             float heightPercent = (float) 0.8;

             float newWidth = bitmap.getWidth() * widthPercent;
             float newHeight = bitmap.getHeight() * heightPercent;

             while (newWidth > 250 || newHeight > 250) {

             newWidth = newWidth * widthPercent;
             Log.i("size width:", String.valueOf(newWidth));
             newHeight = newHeight * heightPercent;
             Log.i("size height:", String.valueOf(newHeight));
             }




             // calculate the scale - in this case = 0.4f
             float scaleWidth = ((float) newWidth) / width;
             Log.i("new size width:", String.valueOf(scaleWidth));
             float scaleHeight = ((float) newHeight) / height;
             Log.i("new size height:", String.valueOf(scaleHeight));

             Matrix matrix = new Matrix();

             // resize the bit map
             matrix.postScale(scaleWidth, scaleHeight);

             // recreate the new Bitmap
             Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,
             width, height, matrix, true);

             Log.i("new bitmap width:",
             String.valueOf(resizedBitmap.getWidth()));
             Log.i("new bitmap height:",
             String.valueOf(resizedBitmap.getHeight()));

            App.serviceCallImages.add(resizedBitmap);

            Adapter.notifyDataSetChanged();

            break;
        }

继承我的相机意图代码

public void OnCameraOpen(View v) {

    if (App.serviceCallImages.size() < 2) {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        startActivityForResult(intent, CAPTURE_PICTURE_INTENT);
    } else {
        Toast.makeText(getApplicationContext(),    getString(R.string.MaxPics),
                Toast.LENGTH_SHORT).show();
    }

}