我想同时拍摄视频和照片.
我有两个按钮.
1.当用户点击一个时,它必须拍摄视频和
2.另一个按钮然后它必须停止录制视频和拍照.
现在我正在尝试录音机和相机,但它不能正常工作,
也注意不是两个在同一时间我想一个接一个地做反之亦然..
任何人都可以告诉我一个好主意.
谢谢.
我在onClick上使用onClick来捕获图像.
PictureCallback myPictureCallback_JPG = new PictureCallback() {
@Override
public void onPictureTaken(byte[] arg0, Camera arg1) {
FileOutputStream outStream = null;
try {
// Write to SD Card
outStream = new FileOutputStream(String.format("/sdcard/%d.jpg", System.currentTimeMillis()));
outStream.write(arg0);
outStream.close();
Toast.makeText(Photo.this, "Image Saved to SD Card", Toast.LENGTH_SHORT).show();
System.out.println();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
camera.startPreview();
}};
Run Code Online (Sandbox Code Playgroud)
图像保存在SD卡中.然后用户单击"发送"按钮并打开布局,在"单击ImageView"上打开图像库并单击特定图像,将选择URI.
imageAttachPhoto = (ImageView)findViewById(R.id.imageViewPhotoOne);
imageAttachPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
} …Run Code Online (Sandbox Code Playgroud) 我已经构建了一个Android应用程序,它捕获图像并保存在/ mnt/sdcard/Pictures/MyFolder中.实际上应用程序运行正常,并且图像存储在给定路径中.问题是在重新启动设备之前我无法看到图像.我可以处理编码中的情况吗?
提前致谢.
我可以使用下面的代码获取图像.拍摄后我想把图像变成一个byte[].我坚持的是我拍摄照片后如何拍摄图像?
Intent是我用来打开相机的意图,但我不确定是否有我可以覆盖的东西,或者如果意图仍然有我的话image/bitmap,我可以将其分解.
[Activity(Label = "CameraPage")]
public class PhotoTaker : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.CameraView);
ImageButton button = FindViewById<ImageButton>(Resource.Id.imagebutton);
button.Click += BtnCameraClick;
}
private string _imageUri;
private Intent intent;
private Boolean isMounted
{
get
{
return Android.OS.Environment.ExternalStorageState.Equals(Android.OS.Environment.MediaMounted);
}
}
public void BtnCameraClick(object sender, EventArgs eventArgs)
{
var uri = ContentResolver.Insert(isMounted
? MediaStore.Images.Media.ExternalContentUri
: MediaStore.Images.Media.InternalContentUri, new ContentValues());
_imageUri = uri.ToString();
intent = new Intent(MediaStore.ActionImageCapture);
//bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, uri);
intent.PutExtra(MediaStore.ExtraOutput, uri);
StartActivityForResult(intent, 1001); …Run Code Online (Sandbox Code Playgroud) 我正在整合Facebook与Android,我想拍摄时,将其保存到SD卡,然后将其上传到Facebook.
这是我的代码:
photo_up=(Button)findViewById(R.id.camera_foto_button);
photo_up.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(getTempFile(PlaceScreen.this)) );
startActivityForResult(intent,CAMERA_REQUEST);
}
});
private File getTempFile(Context context){
//it will return /sdcard/image.tmp
final File path = new File( Environment.getExternalStorageDirectory(), context.getPackageName() );
if(!path.exists()){
path.mkdir();
}
return new File(path, "image.png");
}
Run Code Online (Sandbox Code Playgroud)
和OnActivity结果
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case CAMERA_REQUEST:{
final File file = getTempFile(this);
try {
bmp = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.fromFile(file) );
// do whatever you want with the …Run Code Online (Sandbox Code Playgroud) 我创建了一个应用程序.在我是随机产生latitude,并longitude在GoogleMap并通过该值下页..即CameraPage.但是,在CameraPage上,引脚没有像地图上那样正常掉落..我已经实现了camera-zoom其他方法,但仍然无法正常工作..
请检查屏幕截图..
MapPage

CameraPage

是否有任何解决方案可以缩放相机上的引脚而无需外部变焦控制?
它应该在CameraPage加载时默认缩放..
编辑::
码::
ArrayList<Point> props = new ArrayList<Point>();
props.add(new Point(a_latitude, a_longitude, a_username));
props.add(new Point(b_latitude, b_longitude, b_username));
props.add(new Point(c_latitude, c_longitude, c_username));
props.add(new Point(d_latitude, d_longitude, d_username));
props.add(new Point(e_latitude, e_longitude, e_username));
props.add(new Point(f_latitude, f_longitude, f_username));
props.add(new Point(g_latitude, g_longitude, g_username));
props.add(new Point(h_latitude, h_longitude, h_username));
props.add(new Point(i_latitude, i_longitude, i_username));
props.add(new Point(j_latitude, j_longitude, j_username));
mPaint.setColor(Color.BLACK);
mPaint.setTextSize(30);
mPaint.setStrokeWidth(DpiUtils.getPxFromDpi(getContext(), 2));
mPaint.setAntiAlias(true);
mSpots = new Bitmap[props.size()];
for (int i = 0; i < mSpots.length; …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序.它具有捕获图像应显示在屏幕上的功能,我需要获取该图像路径,以便我可以将该图像发送到服务器.
我能够在屏幕上显示图像,但无法获得绝对图像路径.
我正在走路:
content://media/external/images/media/1220
content://media/external/images/media/1221
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得实际的图像路径?
这是我的代码:
mintent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
mintent.putExtra(MediaStore.EXTRA_OUTPUT,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
startActivityForResult(mintent, 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if ((data != null && !data.toString().equalsIgnoreCase("Intent { }"))
|| requestCode == 1)
switch (requestCode) {
case 1:
try {
// Uri imageFileUri = data.getData();
// String path=getRealPathFromURI(this,imageFileUri);
// Bitmap bitmap = (Bitmap) data.getExtras().get("data");
String photoPath = null;
Bitmap bitmap = (Bitmap) data.getExtras().get("data");
Intent intent = new Intent(this, Media.class);
intent.putExtra("BitmapImage", bitmap);
Bundle b …Run Code Online (Sandbox Code Playgroud) 我正在尝试拍照并将其保存到应用程序的内部缓存中,因为它一上传就会被删除.我使用以下代码来创建文件:
public static File createInternalCacheImageFile(Context context, String imageFileName) throws IOException {
return File.createTempFile(
imageFileName,
context.getString(R.string.image_extension),
context.getCacheDir()
);
}
Run Code Online (Sandbox Code Playgroud)
使用具有root权限的文件管理器进行检查表明文件已正确创建.然后我使用以下代码启动相机意图,通常会将图像保存到我创建的文件中:
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile));
activity.startActivityForResult(takePictureIntent, REQUEST_CODE_IMAGE_CAPTURE);
Run Code Online (Sandbox Code Playgroud)
显示摄像机活动,在接受图片后,活动结果为0.查看logcat以下内容时显示:
07-21 13:19:51.093 12889-12889/? E/CAM_StateSavePic? exception while saving result to URI: Optional.of(file:///data/data/org.serengetitracker.androidapp/cache/image_random_205854910-2018234447.jpg)
java.io.FileNotFoundException: Permission denied
at android.os.Parcel.openFileDescriptor(Native Method)
at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescriptor.java:253)
at android.os.ParcelFileDescriptor.open(ParcelFileDescriptor.java:199)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:916)
at android.content.ContentResolver.openOutputStream(ContentResolver.java:686)
at android.content.ContentResolver.openOutputStream(ContentResolver.java:662)
at com.android.camera.captureintent.state.StateSavingPicture.onEnter(StateSavingPicture.java:84)
at com.android.camera.captureintent.stateful.StateMachineImpl.jumpToState(StateMachineImpl.java:62)
at com.android.camera.captureintent.stateful.StateMachineImpl.processEvent(StateMachineImpl.java:110)
at com.android.camera.captureintent.state.StateOpeningCamera$9.onClick(StateOpeningCamera.java:307)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) …Run Code Online (Sandbox Code Playgroud) 我想通过传递保存和删除选项从Android Intent Camera拍摄图像,而不使用自定义相机.直接保存图像只捕获图像.
请注意,startActivityForResult()方法受调用resolveActivity()的条件的保护,该条件返回可以处理intent的第一个活动组件.执行此检查很重要,因为如果使用无应用程序无法处理的意图调用startActivityForResult(),您的应用程序将崩溃.因此,只要结果不为null,就可以安全地使用intent.
码:
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但不适用于运行4.2.2的Alcatel设备.我收到了ELSE祝词"不能用相机......"
如果设备有相机,这怎么可能?
我现在应该怎么做?如何处理这个用例 - 显然我不得不依赖一些带摄像头的设备会报告"无法使用摄像头",检测到那些设备有摄像头然后使用它?!
文档或SO问题对ELSE案例一无所知.