Android 需要我的应用程序拍摄照片或上传照片,并随时在其他活动中显示
我对java开发一无所知。我正在开发一个应用程序,它有一个配置文件页面,其中包含用户名、名字和姓氏、电话等(这些信息由SharedReference保存)。在同一个页面中,当我点击图片按钮时,它会将图片带到另一个活动中,用户可以从图库上传图片或拍摄图片 问题1-(相机活动)我可以使用相机拍摄照片,因为我正在使用相机应用程序,所以相机也保存在Gallery中,但它不会停留在那里Android 需要我的应用程序拍摄照片或上传照片,并随时在其他活动中显示,android,android-intent,Android,Android Intent,我对java开发一无所知。我正在开发一个应用程序,它有一个配置文件页面,其中包含用户名、名字和姓氏、电话等(这些信息由SharedReference保存)。在同一个页面中,当我点击图片按钮时,它会将图片带到另一个活动中,用户可以从图库上传图片或拍摄图片 问题1-(相机活动)我可以使用相机拍摄照片,因为我正在使用相机应用程序,所以相机也保存在Gallery中,但它不会停留在那里 case R.id.takepic: Intent intent = new Int
case R.id.takepic:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, cameraData);
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
case cameraData:
if (resultCode == RESULT_OK) {
Bundle extras =imageReturnedIntent.getExtras();
bmp = (Bitmap) extras.get("data");
imagepreview.setImageBitmap(bmp);
问题2:我不知道如何将上传的pic带到另一个活动(MainActivity)
如果有人能告诉我如何将我的照片带回我的主要活动或保存,以便我可以通过呼叫它在任何其他活动中使用,我将不胜感激
我做了一些搜索,但对于我来说,理解保存图像和检索图像是如何工作的确实令人困惑,因此无法使其工作。请帮忙。感谢点击事件,只需编写以下代码
case R.id.iv_attachment_pic:
CharSequence[] names = { "From Galary", "From Camera" };
new AlertDialog.Builder(context)
.setTitle("Select an option")
.setItems(names, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int pos) {
// TODO Auto-generated method stub
if (pos == 0) {
Intent i = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, GET_GAL_IMG);
} else {
Intent i = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, GET_CAM_IMG);
}
}
})
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
}
}).create().show();
break;
要使其返回到主要活动,只需像这样使用活动结果
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
switch (requestCode) {
case 2:
if (resultCode == -1) {
encodedImageString = null;
Uri selectedImage = intent.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = context.getContentResolver().query(
selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
bmp_image = BitmapFactory.decodeFile(filePath);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
iv_attachment.setImageBitmap(bmp_image);
if (bmp_image.compress(Bitmap.CompressFormat.JPEG, 50, baos)) {
byte[] image = baos.toByteArray();
encodedImageString = Base64.encodeToString(image,
Base64.DEFAULT);
} else {
System.out.println("Compreesion returned false");
Log.d("Compress", "Compreesion returned false");
}
}
break;
case 3:
if (resultCode == -1) {
encodedImageString = null;
bmp_image = null;
Bundle extras = intent.getExtras();
bmp_image = (Bitmap) extras.get("data");
iv_attachment.setImageBitmap(bmp_image);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if (bmp_image.compress(Bitmap.CompressFormat.JPEG, 50, baos)) {
byte[] image = baos.toByteArray();
encodedImageString = Base64.encodeToString(image,
Base64.DEFAULT);
} else {
System.out.println("Compreesion returned false");
Log.d("Compress", "Compreesion returned false");
}
}
break;
}
}
此处GET_GAL_IMG和GET_CAM_IMG是两个变量,iv_附件是您主要活动中的图像视图感谢Kartheek的回复。非常感谢。只是有点问题。我将两个变量GET_GAL_IMG和GET_CAM_IMG设置为位图。但是,我在startActivityForResult(我,GET_GAL_IMG);)上出错;。它显示为红色。另一件我不确定的事情是上下文。新建AlertDialog.Builder(上下文)。它也是红色的。请告知。Thanksi算出了上下文,该上下文假定为context,GET_CAM_IMG的变量应为int。但是,在运行应用程序并单击按钮后,它会强制关闭自身。任何idea@JisbranAhsan:Context=this;保留1表示GET_GAL_IMG,保留2表示GET_CAM_IMG,即((int GET_CAM_IMG=2))非常感谢。我可以让相机和多媒体资料显示为对话框,并可以拍摄照片和上传。但是,当它返回时,上传/拍摄的照片不会显示在我的图像按钮中,即使我已经提到它setImageBitmap。