比较来自世界各地的卖家的域名和 IT 服务价格

Android 使用按钮打开相机

我希望这不是一个重复的问题,但我让我想要按钮打开相机应用程序的应用程序 /默认 android camera 分别地/. 我该怎么做? 我知道有一个功能:


intent.setAction/MediaStore.ACTION_IMAGE_CAPTURE/


我需要使用它吗? 我如何从文件中调用按钮 xml?

此外,我是否需要担心此图像或视频的存储,或者默认相机应用程序会照顾此图片吗?
已邀请:

喜特乐

赞同来自:

您可以使用:相机相机:


Intent intent = new Intent/"android.media.action.IMAGE_CAPTURE"/;
startActivity/intent/;


图像将自动保存在默认目录中。

并且您需要在您的相机中设置相机的许可 AndroidManifest.xml:


<uses-permission android:name="android.permission.CAMERA"> </uses-permission>

石油百科

赞同来自:

Button b = /Button/findViewById/R.id.Button01/;

b.setOnClickListener/new OnClickListener// {
public void onClick/View v/ {
Intent cameraIntent = new Intent/android.provider.MediaStore.ACTION_IMAGE_CAPTURE/;
startActivityForResult/cameraIntent, CAMERA_PIC_REQUEST/;
}
}/;
}

protected void onActivityResult/int requestCode, int resultCode, Intent data/ {
if /requestCode == CAMERA_PIC_REQUEST/ {
Bitmap image = /Bitmap/ data.getExtras//.get/"data"/;
ImageView imageview = /ImageView/ findViewById/R.id.ImageView01/; //sets imageview as the bitmap
imageview.setImageBitmap/image/;
}
}

涵秋

赞同来自:

您可以创建相机的意图并调用它 startActivityForResult /intent/.


Intent intent = new Intent/MediaStore.ACTION_IMAGE_CAPTURE/;

// start the image capture Intent
startActivityForResult/intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE/;

卫东

赞同来自:

我知道这有点迟到了,但你可以使用下面的语法,因为它与我完美地工作


Camera=/Button/findViewById/R.id.CameraID/;
Camera.setOnClickListener/new OnClickListener// {

@Override
public void onClick/View v/ {
// TODO Auto-generated method stub
Intent Intent3=new Intent/MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA/;
startActivity/Intent3/;
}
}/;

喜特乐

赞同来自:

下面的代码确实是你想要的

//use 这是一个点击的意图


Intent cameraIntent = new Intent/MediaStore.ACTION_IMAGE_CAPTURE/;
startActivityForResult/cameraIntent,CAMERA_REQUEST/;


// 上面的代码用于该部分 "关于活动的结果".


protected void onActivityResult/int requestCode, int resultCode, Intent data/ {

super.onActivityResult/requestCode, resultCode, data/;
callbackManager.onActivityResult/requestCode, resultCode, data/;

if /requestCode == CAMERA_REQUEST/ {
Bitmap photo = /Bitmap/ data.getExtras//.get/"data"/;
image.setImageBitmap/photo/;
}
}

帅驴

赞同来自:

它适合我。 .


Intent intent=new Intent/MediaStore.ACTION_IMAGE_CAPTURE/;
startActivity/intent/;


并将此权限添加到文件中 mainfest:


<uses-permission android:name="android.permission.CAMERA">


它打开相机,在捕获图像后,通过一组新的图像保存画廊中的图像。
</uses-permission>

裸奔

赞同来自:

你是对意图中使用的行动的权利,但这不是你唯一要做的事情。 您还必须添加


startActivityForResult/intent, YOUR_REQUEST_CODE/;


要完成所有这些并获得真实的图片,可以检查下一个线程。

https://coderoad.ru/3491961/

八刀丁二

赞同来自:

您可以使用以下代码。


Intent cameraIntent = new Intent/android.provider.MediaStore.ACTION_IMAGE_CAPTURE/;

pic = new File/Environment.getExternalStorageDirectory//,
mApp.getPreference//.getString/Common.u_id, ""/ + ".jpg"/;

picUri = Uri.fromFile/pic/;

cameraIntent.putExtra/android.provider.MediaStore.EXTRA_OUTPUT, picUri/;

cameraIntent.putExtra/"return-data", true/;
startActivityForResult/cameraIntent, PHOTO/;

二哥

赞同来自:

我创建 libray 从相机或厨房中选择图像,也可以修剪

试试吧,

ImagePro.Java


public class ImagePro
{
public static String TAG = "ImagePro";
Activity activity;
Uri mImageCaptureUri;
public static int CAMERA_CODE = 64;
public static int GALLERY_CODE = 74;
public static int CROPPING_CODE = 84;
private final static int REQUEST_PERMISSION_REQ_CODE = 704;

public ImagePro/Activity activity/ {

this.activity = activity;
this.outPutFile = new File/android.os.Environment.getExternalStorageDirectory//, "temp.jpg"/;

if /ContextCompat.checkSelfPermission/activity, Manifest.permission.WRITE_EXTERNAL_STORAGE/ != PackageManager.PERMISSION_GRANTED/ {

ActivityCompat.requestPermissions/activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_PERMISSION_REQ_CODE/;
}
}

private void LogToast/String message/ {

try {
Toast.makeText/activity, message, Toast.LENGTH_SHORT/.show//;
} catch /Exception e/ {
e.printStackTrace//;
}

Log.d/TAG, message/;
}

private void Toast/String message/ {

try {
Toast.makeText/activity, message, Toast.LENGTH_SHORT/.show//;
} catch /Exception e/ {
e.printStackTrace//;
}
}

private void Log/String message/ {

Log.d/TAG, message/;
}

/**
* This function return captured image path
*
* @param requestCode on activity result requestCode
* @param resultCode on activity result resultCode
* @param intent on activity result intent
* @return ImageDetails values
*/
public ImageDetails getImagePath/int requestCode, int resultCode, Intent intent/ {

ImageDetails imageDetails = new ImageDetails//;

if/resultCode == Activity.RESULT_OK/ {

if/requestCode == CAMERA_CODE/ {
imageDetails.setUri/mImageCaptureUri/;
imageDetails.setPath/mImageCaptureUri.getPath///;
Bitmap bitmap = null;

try {
bitmap = MediaStore.Images.Media.getBitmap/activity.getContentResolver//, mImageCaptureUri/;
} catch /IOException e/ {
LogToast/e.getMessage///;
e.printStackTrace//;
}
imageDetails.setBitmap/bitmap/;
imageDetails.setFile/new File/mImageCaptureUri.getPath////;

} else if/requestCode == GALLERY_CODE/ {

Uri uri = intent.getData//;

imageDetails.setUri/uri/;
Bitmap bitmap = null;

try {
bitmap = MediaStore.Images.Media.getBitmap/activity.getContentResolver//, uri/;
} catch /IOException e/ {
LogToast/e.getMessage///;
e.printStackTrace//;
}

imageDetails.setBitmap/bitmap/;
imageDetails.setFile/new File/uri.getPath////;
imageDetails.setPath/uri.getPath///;

} else if/requestCode == CROPPING_CODE/ {
try {
if/outPutFile.exists///{

imageDetails.setUri/Uri.fromFile/outPutFile//;
imageDetails.setFile/outPutFile/;
imageDetails.setPath/outPutFile.getPath///;
Bitmap photo = decodeFile/outPutFile/;
imageDetails.setBitmap/photo/;
}
else {
LogToast/"Error while save image"/;
}
} catch /Exception e/ {

e.printStackTrace//;
LogToast/e.getMessage///;
}
}

} else {
LogToast/"user cancelled."/;
}

return imageDetails;
}

/**
* Open image pick dialog.<br/>
* CAMERA_CODE
* GALLERY_CODE
*/
public void openImagePickOption// {

final CharSequence[] items = { "Capture Photo", "Choose from Gallery", "Cancel" };

AlertDialog.Builder builder = new AlertDialog.Builder/activity/;
builder.setTitle/"Add Photo!"/;
builder.setItems/items, new DialogInterface.OnClickListener// {
@Override
public void onClick/DialogInterface dialog, int item/ {

if /items[item].equals/"Capture Photo"// {

captureImage//;

} else if /items[item].equals/"Choose from Gallery"// {

pickImage//;

} else if /items[item].equals/"Cancel"// {
dialog.dismiss//;
}
}
}/;
builder.show//;
}

/**
* decode from file to bitmap
* @param f file
* @return Bitmap data
*/
private Bitmap decodeFile/File f/ {
try {
// decode image size
BitmapFactory.Options o = new BitmapFactory.Options//;
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream/new FileInputStream/f/, null, o/;

// Find the correct scale value. It should be the power of 2.
final int REQUIRED_SIZE = 512;
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while /true/ {
if /width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < REQUIRED_SIZE/
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}

// decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options//;
o2.inSampleSize = scale;
return BitmapFactory.decodeStream/new FileInputStream/f/, null, o2/;
} catch /FileNotFoundException e/ {

Log/e.getMessage///;
}
return null;
}

/**
* Capture image using camera <br/>
* REQUEST_CODE = ImagePro.CAMERA_CODE
*/
public void captureImage// {

if/activity != null/ {

Intent intent = new Intent/MediaStore.ACTION_IMAGE_CAPTURE/;
File f = new File/android.os.Environment.getExternalStorageDirectory//, "temp1.jpg"/;
mImageCaptureUri = Uri.fromFile/f/;
intent.putExtra/MediaStore.EXTRA_OUTPUT, mImageCaptureUri/;
activity.startActivityForResult/intent, CAMERA_CODE/;

} else {

LogToast/"Activity not assigned"/;
}
}

/**
* pick image from gallery
*/
public void pickImage// {

Intent i = new Intent/Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI/;
activity.startActivityForResult/i, GALLERY_CODE/;
}

/**
* cropping the uri image
* @param uri - open cropping dialog using the uri data
*/
public void croppingImage/Uri uri/ {

CroppingIMG/uri/;
}

int CROP_IMG_X=512;
int CROP_IMG_Y=512;

public void croppingImage/Uri uri, int cropX, int cropY/ {

CROP_IMG_X = cropX;
CROP_IMG_Y = cropY;

CroppingIMG/uri/;
}

File outPutFile=null;

private void CroppingIMG/Uri uri/ {

final ArrayList<croppingoption> cropOptions = new ArrayList&lt;&gt;//;

Intent intent = new Intent/"com.android.camera.action.CROP"/;
intent.setType/"image/*"/;

List<resolveinfo> list = activity.getPackageManager//.queryIntentActivities/ intent, 0 /;
int size = list.size//;
if /size == 0/ {
LogToast/"Can't find image croping app"/;
} else {
intent.setData/uri/;
intent.putExtra/"outputX", CROP_IMG_X/;
intent.putExtra/"outputY", CROP_IMG_Y/;
intent.putExtra/"aspectX", 1/;
intent.putExtra/"aspectY", 1/;
intent.putExtra/"scale", true/;

//Create output file here
intent.putExtra/MediaStore.EXTRA_OUTPUT, Uri.fromFile/outPutFile//;

if /size == 1/ {
Intent i = new Intent/intent/;
ResolveInfo res = list.get/0/;

i.setComponent/ new ComponentName/res.activityInfo.packageName, res.activityInfo.name//;

activity.startActivityForResult/i, CROPPING_CODE/;
} else {
for /ResolveInfo res : list/ {
final CroppingOption co = new CroppingOption//;

co.title = activity.getPackageManager//.getApplicationLabel/res.activityInfo.applicationInfo/;
co.icon = activity.getPackageManager//.getApplicationIcon/res.activityInfo.applicationInfo/;
co.appIntent = new Intent/intent/;
co.appIntent.setComponent/ new ComponentName/res.activityInfo.packageName, res.activityInfo.name//;
cropOptions.add/co/;
}

CropingOptionAdapter adapter = new CropingOptionAdapter/activity.getApplicationContext//, cropOptions/;

AlertDialog.Builder builder = new AlertDialog.Builder/activity/;
builder.setTitle/"Choose Cropping App"/;
builder.setCancelable/false/;
builder.setAdapter/ adapter, new DialogInterface.OnClickListener// {
public void onClick/ DialogInterface dialog, int item / {
activity.startActivityForResult/ cropOptions.get/item/.appIntent, CROPPING_CODE/;
}
}/;

builder.setOnCancelListener/ new DialogInterface.OnCancelListener// {
@Override
public void onCancel/ DialogInterface dialog / {

if /mImageCaptureUri != null / {
activity.getContentResolver//.delete/mImageCaptureUri, null, null /;
mImageCaptureUri = null;
}
}
} /;

AlertDialog alert = builder.create//;
alert.show//;
}
}
}

/**
* Capture image using camera<br/>
* REQUEST_CODE = User defined code<br/>
* <br/>
* @param iRequestCode User defined code
*/
public void captureImage/int iRequestCode/ {

CAMERA_CODE = iRequestCode;
captureImage//;
}

/**
* get path, bitmap, file and uri from image details object
*/
public class ImageDetails {

String path="";
Bitmap bitmap=null;
File file=null;
Uri uri=null;

public Uri getUri// {
return uri;
}

public void setUri/Uri uri/ {
this.uri = uri;
}

public String getPath// {
return path;
}

public void setPath/String path/ {
this.path = path;
}

public Bitmap getBitmap// {
return bitmap;
}

public void setBitmap/Bitmap bitmap/ {
this.bitmap = bitmap;
}

public File getFile// {
return file;
}

public void setFile/File file/ {
this.file = file;
}
}

/**
* Created by DP on 7/12/2016.
*/
public class CroppingOption {
public CharSequence title;
public Drawable icon;
public Intent appIntent;
}

public class CropingOptionAdapter extends ArrayAdapter {
private ArrayList<croppingoption> mOptions;
private LayoutInflater mInflater;

public CropingOptionAdapter/Context context, ArrayList<croppingoption> options/ {

super/context, R.layout.croping_selector, options/;
mOptions = options;
mInflater = LayoutInflater.from/context/;
}

@Override
public View getView/int position, View convertView, ViewGroup group/ {
if /convertView == null/
convertView = mInflater.inflate/R.layout.croping_selector, null/;

CroppingOption item = mOptions.get/position/;

if /item != null/ {
//ImageView/ convertView.findViewById/R.id.img_icon//.setImageDrawable/item.icon/;
//TextView/ convertView.findViewById/R.id.txt_name//.setText/item.title/;

return convertView;
}

return null;
}
}
}


MainActivity.java


ImagePro imagePro;

@Override
protected void onCreate/Bundle savedInstanceState/ {
super.onCreate/savedInstanceState/;
setContentView/R.layout.activity_main/;
imagePro = new ImagePro/this/;
}

public void onClickUploadImageButton/View view/ {

imagePro.openImagePickOption//;
}


onActivityResult


if/requestCode == CAMERA_CODE &amp;&amp; resultCode == RESULT_OK/ {

imageDetails = imagePro.getImagePath/CAMERA_CODE, RESULT_OK, data/;
ivCrop.setImageBitmap/imageDetails.getBitmap///;
//imageDetails.getPath//, imageDetails.getBitmap//, imageDetails.getUri//, imageDetails.getFile
}


</croppingoption></croppingoption></resolveinfo></croppingoption>

要回复问题请先登录注册