我正在开发一个应用程序,我使用按钮加载相机,需要在我的应用程序中附加这些图片。我没有加载相机的问题,但我无法附加我在我的应用程序中使用相机拍摄的照片。任何人都可以提供一个好的解决方案吗?
谢谢(提前) Swetha Kaulwar。
答案 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();
}
}