我们正在尝试使用原生相机应用程序让用户拍摄新照片.如果我们省略EXTRA_OUTPUT extra并返回小的Bitmap图像,它就可以正常工作.但是,如果我们putExtra(EXTRA_OUTPUT,...)在启动它之前处于意图状态,那么一切都会有效,直到您尝试点击相机应用程序中的"确定"按钮."确定"按钮无效.相机应用程序保持打开状态,没有任何锁定.我们可以取消它,但文件永远不会被写入.我们究竟要做什么ACTION_IMAGE_CAPTURE才能将拍摄的照片写入文件?
编辑:这是通过MediaStore.ACTION_IMAGE_CAPTURE意图完成的,只是为了清楚
camera android return-value android-intent android-camera-intent
新的camera2 API让我很困惑.我想开发一个使用该设备相机的应用程序(适用于Android API 10 - 21).如前所述这里,我应该使用"相机" API.
但是,当我尝试将"Camera"API (android.hardware.Camera)添加到清单的用户功能时,它被标记为已弃用.另一方面,我无法将其更改为"camera2"API (android.hardware.camera2),因为它只与Android API 21+(Android 5 - Lollipop)兼容 - 也会链接它,但我只能添加2个链接.
我不仅希望我的应用程序在旧版本的Android上运行,而且还需要最新版本的...
我正在构建一个使用相机拍照的应用程序.这是我的源代码:
File file = new File(Environment.getExternalStorageDirectory(),
imageFileName);
imageFilePath = file.getPath();
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
//Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, ACTIVITY_NATIVE_CAMERA_AQUIRE);
Run Code Online (Sandbox Code Playgroud)
在onActivityResult()方法上,我BitmapFactory.decodeStream()用来拾取图像.
当我在Nexus上运行我的应用程序时,它运行良好.但是当我在三星Galaxy S或HTC Inspire 4G上运行时,图像的方向是不正确的.

拍摄后的图像预览--------- SD卡上的真实图像
拍摄后的图像预览--------- SD卡上的真实图像
我开始学习android NDK,我立即遇到了问题.
我构建了工具链(花了比我预期的更长的时间!!)并且我编译了C++代码没有任何问题,现在我正在尝试构建java代码.
我立即遇到了问题.有一个文件"main.xml"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World, DemoActivity"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Description Resource Path Location Type
error: Error: String types not allowed (at 'layout_height' with value 'match_parent'). main.xml /DemoActivity/res/layout line 2 Android AAPT Problem
error: Error: String types not allowed (at 'layout_height' with value 'match_parent'). main.xml /DemoActivity/res/layout line 2 Android AAPT Problem
error: Error: String types not allowed (at 'layout_width' with value 'match_parent'). main.xml /DemoActivity/res/layout line 2 Android AAPT …Run Code Online (Sandbox Code Playgroud) 在处理ACTION_IMAGE_CAPTURE活动时我遇到了方向问题.我已经使用过,TAG_ORIENTATION所以我会相应地旋转图片.但现在我们发现在一些较新的设备上这不起作用.事实上,它为所有方向返回1.
这是我们观察到的设备列表;
有趣的是,一旦这个图像是图库它正确显示,如果我选择它,TAG_ORIENTATION就会正确填充.所以不知何故OS正确地填写了这些信息,但没有ActivityResult.
确定方向的最可靠方法是什么?有人在另一个问题上建议比较高度和宽度但是在获得这些时,它们会根据方向正确切换(另一个谜)
编辑:似乎这可能连接到另一个错误,其中操作系统复制在库中拍摄的图像(它只应该将图像保存在我们指定的URL中),事情是这个图像在库中有ORIENTATION信息而指定位置的一个没有.
这是错误; http://code.google.com/p/android/issues/detail?id=19268
编辑2:我已经向Android提交了一个新的错误.我很确定这是与上述错误相关的操作系统错误. http://code.google.com/p/android/issues/detail?id=22822
在Stack Overflow中搜索了所有相关问题但没有找到任何内容后,请尽量帮助我.
我创建了捕获图片的意图.然后我看到了不同的行为onActivityResult():如果我没有在Intent中添加任何额外的内容(对于小图片)onActivityResult中的Intent是可以的,但是当我在将pic写入文件的意图中添加额外内容时,onActivityResult中的意图是null!
意图创作:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// without the following line the intent is ok
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
startActivityForResult(takePictureIntent, actionCode);
Run Code Online (Sandbox Code Playgroud)
为什么它为空,我该如何解决?
我有一个问题.当我试图从相机拍摄照片时,质量非常低.首先,使用相机拍摄图片,而不是保存到目录,同时获取该图片并在我的应用程序中显示.目录中保存的图片质量很好但是当我从目录中获取时,质量很低.下面是我的示例代码:
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == CAMERA_PIC_REQUEST) {
Bitmap thumbnail = (Bitmap) intent.getExtras().get("data");
if (g==1)
{
ImageView myImage = (ImageView) findViewById(R.id.img5);
myImage.setImageBitmap(thumbnail);
View a = findViewById(R.id.img5);
a.setVisibility(View.VISIBLE);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byteArray1 = stream.toByteArray();
}
}
Run Code Online (Sandbox Code Playgroud)
任何解决方案/建议?谢谢 :)
解决了
当我按照下面的Antrromet给出的代码时,问题就解决了
我正在创建一个无中生有的新项目,用于测试目的,在新的ADT安装(Ubuntu Gnome 14.04 LTS,x86_64 CPU)上将所有参数保留为默认值(我没有进行任何代码更改),但我有以下内容Eclipse控制台中的错误:
[2014-06-11 09:03:10 - Kronos] /home/erwan/Applications/ADT/adt-bundle-linux-x86_64-20140321/sdk/build-tools/19.1.0/aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
这是我已经尝试过的:
- >我试图通过Ubuntu软件库(重新)安装ia32-libs,libstdc ++和libstdc ++ 6:没有变化
- >检查更新(对于Eclipse和SDK):没有变化
- >重新安装所有Android Build工具:无变化
- >重新安装亚行:没有变化
我想裁剪图像我发现了一些相当有用的但是不知何故就像缺少了未选区域的变暗所以我想知道有谁知道怎么样?还是引导我走向正确的方向?我发现的在线教程显示会使所选区域变暗,但是当我使用它时,它不会.请帮助我多多感谢,抱歉我的英语不好.
我使用的教程的链接.
我希望它是这样的.

editButton.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent goEdit;
goEdit = new Intent(PreviewActivity.this, CropImage.class);
goEdit.putExtra("image-path", path);
goEdit.putExtra("scale", true);
goEdit.putExtra("fileName", nameFromPath);
//finish();
checkEdit = true;
startActivityForResult(goEdit,0);
}
});
Run Code Online (Sandbox Code Playgroud)
编辑 我使用此按钮侦听器通过调用类CropImage活动调用cropImage文件.这是一个自定义的意图,而不是Android内部的裁剪功能,但我认为是它的副本,以便它支持所有版本,但当我调用它时,所选区域不亮,我不知道问题可以在哪里引导我?谢谢这是我正在使用drioid4you裁剪图像的库
如果我只使用CAMERA_FACING_BACK或CAMERA_FACING_FRONT所有工作正常.
切换CAMERA_FACING_BACK到时我遇到了麻烦CAMERA_FACING_FRONT.
我的代码片段:
public class PhotoCameraActivity extends Activity implements OnClickListener {
private SurfaceView cameraView;
private Button turnButton;
private Camera camera = null;
private Callback listener;
private static int camId = Camera.CameraInfo.CAMERA_FACING_BACK;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photo_camera_main);
prepareActivity();
}
private void prepareActivity() {
cameraView = (SurfaceView) findViewById(R.id.photo_camera_surface_view);
turnButton = (ImageButton) findViewById(R.id.turn_button);
turnButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.equals(turnButton)) {
if (Camera.getNumberOfCameras() > 1 && camId < Camera.getNumberOfCameras() …Run Code Online (Sandbox Code Playgroud) android ×10
camera ×3
orientation ×2
adt ×1
android-crop ×1
api ×1
exif ×1
image ×1
java ×1
libstdc++ ×1
linux ×1
return-value ×1
xml ×1