我正在尝试拍照并将其保存到自定义位置-
public void SavePhoto(View view){
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "WorkingWithPhotosApp");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "QR_" + timeStamp + ".png");
Uri uriSavedImage = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(imageIntent, REQUEST_IMAGE_CAPTURE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data==null){
Toast.makeText(MainActivity.this, "Data is null", Toast.LENGTH_SHORT).show();
}
else{
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
ImageView mImageView=(ImageView)findViewById(R.id.imageView); …Run Code Online (Sandbox Code Playgroud) 我正在制作一个拍摄照片的程序,然后显示它的缩略图.使用模拟器时一切顺利,丢弃按钮删除照片.但是在真实设备上,相机意图将图像保存在imageUri变量上,第二个命名就像我刚刚打开相机并自己拍照一样.
private static final int CAMERA_PIC_REQUEST = 1337;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
//start camera
values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "New Picture");
values.put(MediaStore.Images.Media.DESCRIPTION,"From your Camera");
imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
image = (ImageView) findViewById(R.id.ImageView01);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, CAMERA_PIC_REQUEST);
//save the image buttons
Button save = (Button) findViewById(R.id.Button01);
Button close = (Button) findViewById(R.id.Button02);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if …Run Code Online (Sandbox Code Playgroud) 我试图从相机捕获图像,压缩它,然后将其存储到SD卡.如果我使用下面的代码直接将其保存到SD卡,我会得到完整的图像.但是,如果我尝试在系统中加载图像,我会得到一个超小的图像大小,如320 x 240而不是完整的5 mp图像.
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());
startActivityForResult(intent, CAMERA_PIC_REQUEST);
Run Code Online (Sandbox Code Playgroud)
getImageURI()的位置
private Uri getImageUri() {
// Store image in dcim
file = new File(Environment.getExternalStorageDirectory() + "/DCIM","itshelp.jpg");
imgUri = Uri.fromFile(file);
file.deleteOnExit();
Log.e("syS","file is at "+imgUri);
return imgUri;
}
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试将其保存到内部存储器时,我使用以下代码来获取微小的图像:
public void imageFromCamera() { //code to retrieve image
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, CAMERA_PIC_REQUEST);
}
Run Code Online (Sandbox Code Playgroud)
在我的startActivitForResult中我有以下内容:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_PIC_REQUEST && resultCode == RESULT_OK) { …Run Code Online (Sandbox Code Playgroud) 我想将我的摄像机视图锁定到" 风景 "模式.当我点击我的应用程序中的简单按钮时,该时间设备的摄像机将打开,并且该摄像机应锁定为" 风景模式 ".谁能知道这个问题的解决方案?
我在"CaptureImageActivity.java"活动中使用此代码.因此,在执行此活动后,我的系统的相机将打开.
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(android.provider.MediaStore. ACTION_IMAGE_CAPTURE);
i.putExtra(android.provider.MediaStore.EXTRA_SCREEN_ORIENTATION,ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
startActivityForResult(i,1000);
}
});
Run Code Online (Sandbox Code Playgroud)
我想将相机视图锁定到"LandScape模式".并根据解决方案
<activity android:name=".CaptureImageActivity"
android:screenOrientation="landscape"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
只有"CaptureImageActivity"活动被锁定为"LandScape模式".
我正在使用相机意图在我的应用程序中启动相机,但一旦意图被解雇onActivityResult就会被解雇,我甚至还没有拍照.
当我拍照时,选择它并返回我的活动,onActivityResult根本不会被调用
这是我如何启动相机
PackageManager pm = getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File tempDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"Mobile Map");
if (!tempDir.exists()) {
if (!tempDir.mkdir()) {
Toast.makeText(this,
"Please check SD card! Image shot is impossible!",
Toast.LENGTH_SHORT).show();
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",Locale.US).format(new Date());
File mediaFile = new File(tempDir.getPath() + File.separator+ "IMG_" + timeStamp + ".jpg");
photoUri = Uri.fromFile(mediaFile);
camera.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(camera, CAMERA_REQUEST);
} else {
Toast.makeText(this,"This device does not have a rear facing camera",Toast.LENGTH_SHORT).show(); …Run Code Online (Sandbox Code Playgroud) 使用相机意图拍摄照片后,我压缩位图以降低文件大小.问题是压缩后,它会丢失所有EXIF数据.我在检索原始EXIF数据时没有问题,但是,如何在压缩后将此EXIFF数据添加到字节数组中?
(我的猜测是取字节数组并创建一个位图,然后添加旧的EXIF数据,然后再添加到字节数组,但这是一个移动应用程序,我拍了很多图像,所以我不想浪费记忆)
这是我压缩位图并保存到字节数组输出流的代码:
myBitmapImage.compress(Bitmap.CompressFormat.JPEG, 75, outputstream);//Losing EXIF data here
byte[] ba = outputstream.toByteArray(); // How to add EXIF data here ?
Run Code Online (Sandbox Code Playgroud) 嗨我在主片段中使用viewPager和fragmnets.我试图从图库或相机获取图像到位图,但在选择照片和startActivityForResult后它没有捕获onActivityResult ...
这是我如何调用startActivityForResult:
private void setAvatarDialog(){
final CharSequence[] options = {"Choose from Gallery", "Take Photo" };
String title = getString(R.string.alertDialog_editProfile_updateAvatar_title);
String negative = getString(R.string.alertDialog_editProfile_updateAvatar_negative);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(title);
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (options[which].equals(options[0])) {
mIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
mIntent.setType("image/*");
startActivityForResult(Intent.createChooser(mIntent, "Select File"), SELECT_FILE);
} else if (options[which].equals(options[1])) {
mIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(mIntent, REQUEST_CAMERA);
}
dialog.dismiss();
}
});
builder.setNegativeButton(negative, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int …Run Code Online (Sandbox Code Playgroud) android android-gallery android-camera-intent onactivityresult
当我使用此代码 - >
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
Run Code Online (Sandbox Code Playgroud)
我可以将图像保存到指定的路径,但它也保存到库中.我不想将图像保存到图库.请帮忙.
提前感谢您宝贵的时间.
每当我尝试通过意图打开相机/图库时,我在我的荣耀4C手机,带有64位八核CPU的Android版本6.0中收到此错误.
load:so =/system/lib64/libhwuibp.so
dlopen失败:未找到库"/system/lib64/libhwuibp.so"
基本上我试图在OpenCV-2.4.13.1-android-sdk so文件的帮助下裁剪图像.但这个错误似乎与设备相关,因为在其他手机应用程序工作完全正常,任何人都可以帮助我吗?
64-bit android opencv android-camera-intent android-6.0-marshmallow
我必须使用Espresso创建脚本来在Firebase测试实验室中测试我的应用程序。我的应用程序使用相机捕获图像,并且我已打开默认的相机应用程序。
为了在我的设备上进行测试,我给了我正在使用的测试设备的软件包名称。问题在于,不同Android设备的相机应用程序包名称不同,我们不知道每个。硬编码程序包名称也不是一件好事。
我已经搜索出了,但是找不到找到解决方案的方法。
在此先感谢。
testing android android-camera-intent android-espresso firebase-test-lab