我用这段代码从相机中捕捉图像.
package android.takeowneship;
import java.io.File;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.widget.ImageView;
import android.widget.Toast;
public class camera extends Activity{
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
Uri imageUri;
private ImageView imageView;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//define the file-name to save photo taken by Camera activity
String fileName = "new-photo-name.jpg";
//create parameters for Intent with filename
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture …
Run Code Online (Sandbox Code Playgroud) 我正在使用原生Android相机并将文件保存到我的应用程序数据文件夹(/mnt/sdcard/Android/data/com.company.app/files/Pictures/).同时,其他照片副本保存到DCIM文件夹.
这是我的代码:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String formattedImageName = getDateString() + ".jpg";
File image_file = new File(this.getExternalFilesDir(Environment.DIRECTORY_PICTURES), formattedImageName);
Uri imageUri = Uri.fromFile(image_file);
intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);
startActivityForResult(intent, REQUEST_FROM_CAMERA);
Run Code Online (Sandbox Code Playgroud)
如何防止将其他图像副本保存到DCIM文件夹?
非常感谢
android native android-sdcard android-camera android-camera-intent
我从一个我称之为活动的活动中向相机发送了一个意图:
Intent testphoto = new Intent(Dashboard.this,CameraHandler.class);
startActivity(testphoto);
Run Code Online (Sandbox Code Playgroud)
在CameraHandler类中,我调用相机:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)
但是在CameraHandler
camerahandler类中调用之前,活动被破坏了.反正有没有阻止这个?
发现答案:我的androidmanifest nohistory = true,这使得操作系统在结果之前破坏了活动.
android android-camera-intent android-activity android-ondestroy
我正在创建一个相机应用程序.捕获时的图像显示在网格视图中.现在,代码在除三星设备之外的所有设备上都能正常工作.
我正面临着方向问题.当我以纵向模式拍摄图像时,图像在网格视图中显示时会旋转.我没有保留任何旋转代码.其次,使用EXIF我在网格视图中获得了正确的图像,但是当设备方向改变时,图像再次以旋转的方式旋转.
附加图片:
对不起图像的分辨率.请知道它们是否不正确.将再次上传.我知道SO上有很多这样的帮助.但我想我在某个地方被困住了.
我指的是以下链接:
http://blog.andolasoft.com/2013/06/how-to-show-captured-images-dynamically-in-gridview-layout.html
android screen-orientation android-camera android-camera-intent android-orientation
我想实现一种功能,当有人试图解锁我的设备并输入错误密码3次时,通过前置摄像头捕获图像.我检查过它可以在Android中使用,某些应用程序也可以在Market中使用.
我已经做了一些工作来实现这一目标,但我得到了一个黑色的图像.这是代码:
注册设备管理员以获取广播的错误密码尝试:
public class DeviceAdminSample extends DeviceAdminReceiver {
static Context ctx;
static SharedPreferences getSamplePreferences(Context context) {
ctx = context;
return context.getSharedPreferences(
DeviceAdminReceiver.class.getName(), 0);
}
@Override
public void onPasswordFailed(Context context, Intent intent) {
super.onPasswordFailed(context, intent);
System.out.println("Password Attempt is Failed...");
Intent i = new Intent(context, CameraView.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
Run Code Online (Sandbox Code Playgroud)
Camera Class捕获图像并将其保存到SD卡:
public class CameraView extends Activity implements SurfaceHolder.Callback,
OnClickListener {
private static final String TAG = "CameraTest";
Camera mCamera;
boolean mPreviewRunning = false;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Log.e(TAG, …
Run Code Online (Sandbox Code Playgroud) android android-intent android-camera android-camera-intent android-canvas
我正在尝试从教程或相机中获取图像的教程和示例代码的数量,然后裁剪图像并将其上传到服务器.我在那个代码中实现了代码,我面临的问题很少.
下面是我的代码片段
public void getPhoto() {
final String[] items = new String[] { "Take from camera",
"Select from gallery" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.select_dialog_item, items);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Select Image");
builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) { // pick from
// camera
if (item == 0) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(
"android.intent.extras.CAMERA_FACING",
android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT);
mImageCaptureUri = Uri.fromFile(new File(Environment
.getExternalStorageDirectory(), "tmp_avatar_"
+ String.valueOf(System.currentTimeMillis())
+ ".jpg"));
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
mImageCaptureUri);
try { …
Run Code Online (Sandbox Code Playgroud) android image-uploading android-gallery android-camera android-camera-intent
我试图拍照然后使用照片.这就是我做的.
我的设备是Nexus 6P(Android 7.1.1).
首先,我创建了一个Uri
:
Uri mPicPath = UriUtil.fromFile(this, UriUtil.createTmpFileForPic());
//Uri mPicPath = UriUtil.fromFile(this, UriUtil.createFileForPic());
Run Code Online (Sandbox Code Playgroud)
然后,我开始Intent
:
Intent intent = ActivityUtils.getTakePicIntent(mPicPath);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, RequestCode.TAKE_PIC);
}
Run Code Online (Sandbox Code Playgroud)
最后,我处理了这个Uri
问题onActivityResult
:
if (requestCode == RequestCode.TAKE_PIC) {
if (resultCode == RESULT_OK && mPicPath != null) {
Bitmap requireBitmap = BitmapFactory.decodeFile(mPicPath.getPath());
//path is like this: /Download/Android/data/{@applicationId}/files/Pictures/JPEG_20170216_173121268719051242.jpg
requireBitmap.recycle();//Here NPE was thrown.
}
}
Run Code Online (Sandbox Code Playgroud)
在此期间,以下是UriUtil
:
public class UriUtil {
public static File createFileForPic() throws …
Run Code Online (Sandbox Code Playgroud) android bitmap android-camera-intent android-fileprovider android-7.0-nougat
我想启动默认摄像头,但希望它像从启动器启动一样(即生成的图片应该由相机应用程序存储到用户的图库,而不是返回到我的应用程序).如果我使用Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
,相机应用程序使用"确定?重试?" - 用户界面并不保存图片.我宁愿不使用"直接" com.android.camera
意图,因为很多设备都使用自定义相机应用程序.我已经看到库存gallery3d-app使用别名实现com.android.camera/.Camera
,但我不确定每个预先加载的制造商相机应用程序是否这样做.
我正在尝试使用exif界面在Android应用程序中编写User_Comment
和TAG_GPS
捕获的图像,但由于某种原因,当我在图库中查看图像的详细信息时,标签似乎没有附加到图像上.
似乎可能没有将标签写入捕获的图像,因为文件路径可能是错误的.我想这可能是因为我将标签写入了错误的图像路径.
有没有人知道我的标签写入图像的方式是否有问题?
这是在@ Charlie的更改后保存exif数据的代码:
private File getOutputPhotoFile() throws IOException {
File directory = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), getPackageName());
if (!directory.exists()) {
if (!directory.mkdirs()) {
Log.e(TAG, "Failed to create storage directory.");
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyMMdd_HHmmss", Locale.ENGLISH).format(new Date());
File[] files = directory.listFiles();
File exifVar = new File(directory.getPath(), "IMG_" + timeStamp + ".jpg");
if(files.length!=0) {
File newestFile = files[files.length-1];
exifVar = new File(directory.getPath() + File.separator + newestFile.getName());
}
String mString = "Generic Text..";
ExifInterface …
Run Code Online (Sandbox Code Playgroud) 当我点击照片并设置为我的Imageview而没有用户选择是或否时,我想显示图像....
我正在研究更多,我也非常清楚相机应用程序本身使您能够查看/重新拍摄图像,一旦图像被接受,活动就会显示它.但我想要不经审查/重拍活动显示它.....
我正在尝试这段代码
用来初始化
Uri mImageCaptureUri;
Run Code Online (Sandbox Code Playgroud)
对于单击按钮
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
File file = new File(Environment.getExternalStorageDirectory(),
"tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
mImageCaptureUri = Uri.fromFile(file);
try {
intent.putExtra(MediaStore.AUTHORITY, true);
intent.putExtra("return-data", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
startActivityForResult(intent, PICK_FROM_CAMERA);
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap bitmap = null;
mPath = mImageCaptureUri.getPath();
System.out.println("THE PAtH:_" + mPath);
BitmapFactory.Options o2 = new BitmapFactory.Options();
bitmap = BitmapFactory.decodeFile(mPath, o2);
ivSelfie.setImageBitmap(bitmap);
}
Run Code Online (Sandbox Code Playgroud)
当我点击照片而不是我这个屏幕选择是或否......
但我的要求不是选择评论/重拍任务,只需点击并设置.....直接设置到活动显示的ImageView .....