目前我有一个程序可以拍摄照片并将其作为jpg保存在SD卡的顶层,但它没有出现在Gallery中.我必须做些什么来实现它?
我正在使用摩托罗拉Droid X,由于某种原因,在onAutoFocus(布尔成功,相机相机)成功的成功变量总是返回false.它似乎与包括Droid 2在内的其他设备一起使用,因此它似乎是一个特定于设备的问题.
我的代码基本上是这样的:
camera.autoFocus(new AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
takePicture();
}
});
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我通过Android摄像头捕获照片,然后我想将其发送到服务器.为此我使用Client Socket编程.我将捕获照片转换为bytearray(byte []),然后将其发送到服务器.每件事都在事实上发挥作用.
问题在那里我无法将原始照片发送到服务器.缩略图照片由Android手机发送.但是当我通过相机捕捉照片时,原始照片就在画廊中.
如何在我的应用程序中使用此原始照片?
我的代码:
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("outputFormat",Bitmap.CompressFormat.JPEG);
cameraIntent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(cameraIntent, "Select Picture"),
CAMERA_REQUEST);
Run Code Online (Sandbox Code Playgroud)
在onActivityResult方法中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
// byte[] a = (byte[]) data.getExtras().getByteArray("data"); // I also use this but not work
ByteArrayOutputStream bos = new ByteArrayOutputStream();
photo.compress(CompressFormat.JPEG, 100, bos);
byte[] bitmapdata = bos.toByteArray();
}
}
Run Code Online (Sandbox Code Playgroud)
在bitmapdata照片是有,但压缩的照片不是原始的.有人说,改变压缩质量领域(CompressFormat.JPEG,100,bos); 在0到100之间,但什么都不会发生.
- >>还有其他方法可以获得相机拍摄的原始照片 …
尝试将相机切换回前面但获得异常.找不到问题请检查并帮助..
Run Code Online (Sandbox Code Playgroud)error:- 01-27 11:49:00.376: E/AndroidRuntime(30767): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vdrecord/com.vdrecord.AndroidVideoCapture}: java.lang.NullPointerException
我的代码: -
public class AndroidVideoCapture extends Activity{
private static final String TAG = "CameraRecorderActivity";
private Camera myCamera;
private MyCameraSurfaceView myCameraSurfaceView;
private MediaRecorder mediaRecorder;
private static String val="yes";
private Button useOtherCamera;
Button myButton;
SurfaceHolder surfaceHolder;
boolean recording;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
recording = false;
setContentView(R.layout.activity_android_video_capture);
useOtherCamera = (Button) findViewById(R.id.useOtherCamera);
useOtherCamera.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我使用一个按钮启动Camera应用程序并将图片保存到sdCard上按特定日期和时间命名的特定文件夹.当我对图片的名称进行硬编码时,它工作正常,但如果我试图在名称中输入日期则根本不起作用.
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), Constants.IMAGE_FOLDER_URI);
imagesFolder.mkdirs();
Date d = new Date();
CharSequence s = DateFormat.format("MM-dd-yy hh:mm:ss", d.getTime());
File image = new File(imagesFolder, s.toString() + ".jpg"); //this line doesn't work
Uri uriSavedImage = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivity(imageIntent);
Run Code Online (Sandbox Code Playgroud)
如果我把:
s = "some_name";
Run Code Online (Sandbox Code Playgroud)
然后它工作,但我需要图像名称中的当前日期和时间.
拍摄照片时如何启用快门声?我试过这个,但它不起作用!我在Galaxy y上测试它(目标2.3.6)任何提示或想法?提前致谢.
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
mCamera.takePicture(shutterCallback, null, mPicture);
return super.onTouchEvent(event);
}
private final ShutterCallback shutterCallback = new ShutterCallback() {
public void onShutter() {
AudioManager mgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
mgr.playSoundEffect(AudioManager.FLAG_PLAY_SOUND);
}
};
Run Code Online (Sandbox Code Playgroud) 我正在尝试开发自动聚焦在相机框架中间的大对象的代码.这是我的代码:
Log.i (TAG, "Picking supported size " + selected.width + "x" + selected.height);
parameters.setPictureSize (selected.width, selected.height);
try
{
parameters.setFocusAreas (Arrays.asList (
new Camera.Area (
new Rect(selected.width/3, selected.height/3, (selected.width*2)/3, (selected.height*2)/3),
1)
));
}
catch (Exception e)
{
Log.w (TAG, "Set focus area failed", e);
}
catch (NoClassDefFoundError e)
{
Log.w (TAG, "Set focus area failed", e);
}
camera.setParameters (parameters);
Run Code Online (Sandbox Code Playgroud)
三星Galaxy S2与CM9的结果是:
I/ImageCaptureActivity(28885): Picking supported size 2048x1232
E/ISecCameraHardware(1874): android::status_t android::ISecCameraHardware::checkArea(ssize_t, ssize_t, ssize_t, ssize_t, ssize_t): Camera area right coordinate is invalid 1365
E/ISecCameraHardware(1874): …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用MediaStore.ACTION_IMAGE_CAPTURE意图拍摄个人资料照片.
启动意图的代码:
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File myPicture = new File(OfflineApp.getAppContext().getFilesDir() + "/" + getResources().getString(R.string.contact_photos_dir), getResources().getString(R.string.my_photo_file_name));
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(myPicture));
startActivityForResult(cameraIntent, REQUEST_CODE_TAKE_PHOTO);
Run Code Online (Sandbox Code Playgroud)
和onActivityResult部分:
case REQUEST_CODE_TAKE_PHOTO:
if (resultCode == RESULT_OK) {
String path = new File(OfflineApp.getAppContext().getFilesDir() + "/" + getResources().getString(R.string.contact_photos_dir), getResources().getString(R.string.my_photo_file_name)).getAbsolutePath();
ContactManager.getInstance().updateMyImage(path);
}
break;
Run Code Online (Sandbox Code Playgroud)
但是,结果代码总是RESULT_CANCELED在我提供的情况下MediaStore.EXTRA_OUTPUT,即使文件不存在也是如此.
I need to ask for runtime permission to use camera in my fragment class.my code is like this..
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion >= Build.VERSION_CODES.M) {
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(getActivity(), new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_ASK_PERMISSIONS);........
Run Code Online (Sandbox Code Playgroud)
但是,它显示 - 无法解析符号'CAMERA'
android android-camera android-permissions android-6.0-marshmallow runtime-permissions
我正在开发一个Android应用程序,需要显示默认相机文件夹中的图像.我的问题是我不知道如何找到相机照片的内部默认存储文件夹.
当我找到它将手机连接到PC(它是没有SD卡的三星Galaxy S7)时,我看到图片存储在DCIM/Camera.但是,这不起作用.做:files = new File("DCIM/Camera/");导致应用程序说没有任何内容.
如何找到相机照片的默认内部存储文件夹?