Articles of android camera intent

如何压缩图像大小?

我想使用android camera api以低分辨率捕获图像但是当我捕获图像时它将采用设备相机的默认分辨率。所以我想在捕获时捕获低分辨率或小尺寸的图像或者如何将大图像压缩成android中的小尺寸?任何人都知道请帮助我… thnx

Android – 将图像保存在特定文件夹中

我需要将使用我的应用程序拍摄的照片保存在特定文件夹中。 我已经阅读了很多这个问题的解决方案,但是我无法让它们工作,所以我请求帮助。 MainActivity.java public void onClick(View v) { Intent camera = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE); //Folder is already created String dirName = Environment.getExternalStorageDirectory().getPath() + “/MyAppFolder/MyApp” + n + “.png”; Uri uriSavedImage = Uri.fromFile(new File(dirName)); camera.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); startActivityForResult(camera, 1); n++; } AndroidManifest.xml中

来自相机或画廊的图片?

我有一个意图选择器,允许我从画廊或相机中选择图像,如下所示: Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT,null); galleryIntent.setType(“image/*”); galleryIntent.addCategory(Intent.CATEGORY_OPENABLE); Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); Intent chooser = new Intent(Intent.ACTION_CHOOSER); chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent); chooser.putExtra(Intent.EXTRA_TITLE, “title”); Intent[] intentArray = {cameraIntent}; chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray); startActivityForResult(chooser,REQUEST_CODE); 我希望我的onActivityResult方法是这样的: protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(Condition == picture_coming_from_gallery) { //my code here } else if(condition == picture_coming_from_camera) { //another code here […]

Android:使用Camera Intent时,应用程序在onActivityResult上崩溃

我正在使用相机意图在我的应用程序中捕获图像。 我的应用程序在使用相机时在Android 5.0.2上崩溃的问题。 我正在使用片段的意图。 下面是我片段内的代码: 拍照的方法 private void takePhoto() { mHighQualityImageUri = Util.generateTimeStampPhotoFileUri(getActivity()); Log.d(UploadPicturesFragment.class.getSimpleName(), “URI: ” + mHighQualityImageUri.toString()); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, mHighQualityImageUri); startActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } 我片段中的onActivityResult public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode != Activity.RESULT_OK) { return; } if (requestCode == REQUEST_IMAGE_CAPTURE) { Log.d(UploadPicturesFragment.class.getSimpleName(), “IMAGE URI NOT NULL: […]

onActivityResult从相机返回,Intent为null

我按照Android开发站点上的Camera上的说明进行操作 我只是启动Camera Intent,而不是自己制作相机。 拍照后处理结果返回的示例代码如下。 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { if (resultCode == RESULT_OK) { // Image captured and saved to fileUri specified in the Intent Toast.makeText(this, “Image saved to:\n” + data.getData(), Toast.LENGTH_LONG).show(); } else if (resultCode == RESULT_CANCELED) { // User cancelled the image capture } […]

Android上的相机示例

我想写一个活动: 显示相机预览(取景器),并有一个“捕获”按钮。 按下“捕获”按钮时,拍摄照片并将其返回到调用活动(setResult()&finish())。 是否有适用于每个设备的 完整示例? 链接到一个简单的开源应用程序拍照将是理想的答案。 我到目前为止的研究: 这是一个常见的场景,有很多问题和教程。 主要有两种方法: 使用android.provider.MediaStore.ACTION_IMAGE_CAPTURE事件。 看到这个问题 直接使用Camera API。 请参阅此示例或此问题(包含大量参考) 。 方法1本来是完美的,但问题是每个设备上的意图实现不同。 在某些设备上它运行良好。 但是,在某些设备上,您可以拍照,但它永远不会返回到您的应用。 在某些设备上,启动意图时没有任何反应。 通常它还会将图像保存到SD卡,并且需要存在SD卡。 每个设备上的用户交互也不同。 方法2的问题是稳定性。 我尝试了一些例子,但我设法阻止相机在某些设备上工作(直到重启)并完全冻结另一台设备。 在其他设备上捕获工作,但预览保持黑色。 我会使用ZXing作为示例应用程序(我使用它很多),但它只使用预览(取景器),并且不拍任何照片。 我还发现,在某些设备上,ZXing在光照条件改变时没有自动调整白平衡,而原生相机应用程序正确地做到了(不确定是否可以修复)。 更新: 有一段时间我直接使用了相机API。 这提供了更多控制(自定义UI等),但我不建议任何人。 我会在90%的设备上工作,但每次都会发布一个新的设备,但会遇到不同的问题。 我遇到的一些问题: 处理自动对焦 处理闪光灯 配备前置摄像头,后置摄像头或两者的支持设备 每个设备都有不同的屏幕分辨率,预览分辨率(并不总是与屏幕分辨率匹配)和图像分辨率的组合。 所以一般来说,除非别无其他办法,否则我不建议去这条路线。 两年后,我通过自定义代码转储并切换回基于Intent的方法。 从那时起,我的麻烦就少了很多。 我过去在基于意图的方法中遇到的问题可能只是我自己的无能。 如果你真的需要走这条路,我听说如果你只支持Android 4.0+的设备会更容易。

android减少摄像头捕获图像的文件大小小于500 kb

我的要求是将摄像头捕获的图像上传到服务器,但它应该小于500 KB。 如果它大于500 KB,则需要将其减小到小于500 KB的大小(但稍微接近它) 为此,我使用以下代码 – @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { try { super.onActivityResult(requestCode, resultCode, data); if (resultCode == getActivity().RESULT_OK) { if (requestCode == REQUEST_CODE_CAMERA) { try { photo = MediaStore.Images.Media.getBitmap( ctx.getContentResolver(), capturedImageUri); String selectedImagePath = getRealPathFromURI(capturedImageUri); img_file = new File(selectedImagePath); Log.d(“img_file_size”, “file size in KBs (initially): ” + […]

相机意图不保存照片

我以前成功使用过此代码片段,但文件指向SD卡上的某个位置。 final File temp = new File(getCacheDir(), “temp.jpg”); temp.delete(); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(temp)); startActivityForResult(intent, CONFIG.Intents.Actions.SELECT_CAMERA_PHOTO); 但是,当我使用getCacheDir而不是SD卡上的loc时,似乎从未保存过照片。 这是缓存目录和图像捕获的限制吗?

广播接收器不会收到相机事件

我正在尝试创建一个可以检测用户何时拍照的应用。 我设置了一个广播接收器类,并通过以下方式将其注册在清单文件中: 无论我尝试做什么,该程序都不会收到广播。 这是我的接收器类: public class photoReceiver extends BroadcastReceiver { private static final String TAG = “photoReceiver”; @Override public void onReceive(Context context, Intent intent) { CharSequence text = “caught it”; int duration = Toast.LENGTH_LONG; Log.d(TAG, “Received new photo”); Toast toast = Toast.makeText(context, text, duration); toast.show(); } } 如果我删除清单和我的活动中的mimeType行,我会发送自己的广播 Intent intent = new Intent(“com.android.camera.NEW_PICTURE”); sendBroadcast(intent); 然后我成功收到广播,可以看到日志和吐司窗口​​。 […]

android camera:将结果ResultInfo {who = null,request = 0,result = -1,data = null}传递给activity

我真的很沮丧地解决我的问题,我有一个使用相机的应用程序,当相机拍摄照片时,它会显示活动,当我不使用cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mPhotoUri); 照片将显示在活动上,但名称和路径文件不是我想要的。 我正在使用galaxy选项卡进行编译,我已经按照教程从这里解决了我的问题, 这里和这里但我的应用程序仍然强制关闭和错误,这是我的代码: { File sdCard= Environment.getExternalStorageDirectory(); File path = new File (sdCard.getAbsolutePath() + “/android/data/spaj_foto”); path.mkdir(); File file= new File (path,”spaj_foto.png”); String filePath =”/android/data/spaj_foto/spaj_foto.png”; try { file.createNewFile(); } catch (IOException e) {} mPhotoUri = Uri.fromFile(file); values.put( MediaStore.Images.ImageColumns.DATA, file.getPath()); mPhotoUri=getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mPhotoUri); startActivityForResult(cameraIntent,TAKE_PHOTO_CODE ); } activityresult方法: @Override protected […]