① android 开发,调用相机的相关代码
/**
* @Description 调用系统相机照相,获取原图像
* @param activity 就是你的mainactivity
* @param dir 拍照后保存在本地的图片路径
* @param filename 图片的名称
* @param cmd 返回的requestCode
* @return void
*/
public static boolean takePhoto(final Activity activity, final String dir,
final String filename, final int cmd) {
String filePath = dir + filename;
// final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Log.d("test", "MediaStore.ACTION_IMAGE_CAPTURE"
+ android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final Intent intent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE == null ? "android.media.action.IMAGE_CAPTURE"
: android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final File cameraDir = new File(dir);
if (!cameraDir.exists()) {
// return false;
cameraDir.mkdirs();
}
final File file = new File(filePath);
final Uri outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
try {
activity.startActivityForResult(intent, cmd);
} catch (final ActivityNotFoundException e) {
return false;
}
return true;
}
然后在你的onactivityforresult方法里写:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case PHOTOGRAPH://拍照
if (resultCode == RESULT_OK) {
String url = FileHelper.Get_SDCardPath() + Constant.HHXH_IMGDIR
+ BitmapUtil.tempPhoto;//图片路径,和你前面调用相册时设的路径一样
Bitmap bitmap = BitmapUtil
.extractThumbNail(url, 480, 320, true);//这里是根据本地路径获取图片并压缩的,这个我写的代码比较多就不上传了
findviewbyid(R.id.imgPhoto).setImageBitmap(bitmap);
}
}
}
② Android调用照相机和百度地图开发,百度地图显示界面覆盖了相机界面,求大神解答
android手机有自带的照相机和图库,我们做的项目中有时用到上传图片到服务器,今天做了一个项目用到这个功能,所以把我的代码记录下来和大家分享,有需求的朋友可以参考下
android手机有自带的照相机和图库,我们做的项目中有时用到上传图片到服务器,今天做了一个项目用到这个功能,所以把我的代码记录下来和大家分享,第一次写博客希望各位大神多多批评。
首先上一段调用android相册和相机的代码:
复制代码
代码如下:
Intent intent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);//调用android自带的照相机
photoUri =
MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
startActivityForResult(intent,
1);
复制代码
代码如下:
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//调用android的图库
startActivityForResult(i, 2);
复制代码
代码如下:
@Override
protected void
onActivityResult(int requestCode, int resultCode, Intent data) {
//完成照相后回调用此方法
super.onActivityResult(requestCode, resultCode, data);
case 1:
switch (resultCode) {
case Activity.RESULT_OK://照相完成点击确定
String sdStatus = Environment.getExternalStorageState();
if
(!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
Log.v("TestFile", "SD card is not avaiable/writeable right now.");
return; }
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap)
bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式
FileOutputStream b = null;
File file = new File("/sdcard/pk4fun/");
file.mkdirs();//
创建文件夹,名称为pk4fun //
照片的命名,目标文件夹下,以当前时间数字串为名称,即可确保每张照片名称不相同。网上流传的其他Demo这里的照片名称都写死了,则会发生无论拍照多少张,后一张总会把前一张照片覆盖。细心的同学还可以设置这个字符串,比如加上“IMG”字样等;然后就会发现sd卡中myimage这个文件夹下,会保存刚刚调用相机拍出来的照片,照片名称不会重复。
String str = null;
Date date = null;
SimpleDateFormat format = new
SimpleDateFormat("yyyyMMddHHmmss");// 获取当前时间,进一步转化为字符串
date = new
Date(resultCode);
str = format.format(date);
String fileName =
"/sdcard/myImage/" + str + ".jpg";
sendBroadcast(fileName);
try {
b
= new FileOutputStream(fileName);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件
} catch
(FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
b.flush();
b.close();
} catch (IOException e) {
e.printStackTrace();
}
} break;
case Activity.RESULT_CANCELED://
取消
break;
}
break;
case 2:
switch (resultCode) {
case
Activity.RESULT_OK: {
Uri uri = data.getData();
Cursor cursor =
mActivity.getContentResolver().query(uri, null,
null, null, null);
cursor.moveToFirst();
String imgNo = cursor.getString(0); // 图片编号
String imgPath = cursor.getString(1); // 图片文件路径
String imgSize =
cursor.getString(2); // 图片大小
String imgName = cursor.getString(3); // 图片文件名
cursor.close();
// Options options = new BitmapFactory.Options();
//
options.inJustDecodeBounds = false;
// options.inSampleSize = 10;
//
Bitmap bitmap = BitmapFactory.decodeFile(imgPath, options);
}
break;
case Activity.RESULT_CANCELED:// 取消
break;
}
break;
}
③ android手机指令对应的信息用代码执行显示,如输入:*#06#可以显示IMEI串码,不知道程序要调用什么代码
程序要调用使用代码为*#*#4636#*#* 可以进入工程模式,可以开手机网关,也可以查手机电池信息 是否原装。安卓手机系统代码命令有以下方法:
1、*#*#4636#*#* 显示手机信息、电池信息、电池记录、使用统计数据、WIFI信息
2*#*#7780#*#* 重设为原厂设定,不会删除预设程序及SD卡档案
3、*2667*3855# 重设为原厂设定,会删除SD卡所有档案
4、*#*#34971539#*#* 显示相机相机韧体版本,或更新相机韧体
5、*#*#7594#*#* 当长按关机按钮时,会出现一个切换手机模式的窗口,可以用这个代码,直接变成关机按钮
6、*#*#273283*255*663282*#*#* 开启一个能让你备份媒体文件的地方,例如相片、声音等
7、*#*#197328640#*#* 启动服务模式,可以测试手机部分设置及更改设定WLAN、GPS及蓝牙测试代码
8、*#*#232338#*#* 显示WIFI MAC地址
9、*#*#1472365#*#* GPS测试
10、*#*#1575#*#* 其他GPS测试
11、*#*#232331#*# 蓝牙测试
12、*#*#232337#*# 显示蓝牙装置地址
13、*#*#8255#*#* 启动GTALK服务监视器
各项硬件测试
1、*#*#0283#*#* Packet Loopback
2、*#*#0*#*#* LCD测试
3、*#*#0842#*#* 装置测试,如震动、亮度
4、*#*#2663#*#* 触控屏幕版本
5、*#*#2664#*#* 触控屏幕测试
6、*#*#0588#*#* 接近感应器测试
7、*#*#3264#*#* 内存版本
8、*#06# 显示手机原厂出厂串号(移动通信国际识别码)
④ Android 如何调用相机或相册,设置不同两张图片在两个图片控件上 求代码
遇到android项目导入出现后重复空包等错误,往往是导入的java编译级别有关,点击项目properties->
java Compiler ->修改Compiler compliance level 一般是1.6。
修改完成clean项目之后,往往还会遇到:
gen already exists but is not a source folder. Convert to a source folder or rename it的错误。
遇到这个问题的解决方法:
1. 右键点击工程,选择 "Properties"
2. 选择左边的 "Java Build Path"
3. 打开 "Source" 标签面板
4. 点击 "Add Folder..."
5. 勾选 "gen" 文件夹,点击OK,点击YES,再点击OK
6. 最后右键点击工程,选择 "Andriod Tools" 里面的 "Fix Project Properties"
⑤ Android怎么调用系统相册将选中的图片设置为布局的背景,有没有案例或源码
Android中调用系统相机来拍摄照片的代码,如下:
1、首先设置Uri获取判断以及相机请求Code
public final int TYPE_TAKE_PHOTO = 1;//Uri获取类型判断
public final int CODE_TAKE_PHOTO = 1;//相机RequestCode
2、调起系统相机
Intent takeIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri photoUri = getMediaFileUri(TYPE_TAKE_PHOTO);
takeIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takeIntent, CODE_TAKE_PHOTO);
3、封装获取Uri代码
public Uri getMediaFileUri(int type){
File mediaStorageDir = new File(Environment.(Environment.DIRECTORY_PICTURES), "相册名字");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
//创建Media File
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == TYPE_TAKE_PHOTO) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
} else {
return null;
}
return Uri.fromFile(mediaFile);
}
4、相机拍照完毕后获取返回数据,并在页面显示照片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CODE_TAKE_PHOTO:
if (resultCode == RESULT_OK) {
if (data != null) {
if (data.hasExtra("data")) {
Log.i("URI", "data is not null");
Bitmap bitmap = data.getParcelableExtra("data");
imageView.setImageBitmap(bitmap);//imageView即为当前页面需要展示照片的控件,可替换
}
} else {
Log.i("URI", "Data is null");
Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath());
imageView.setImageBitmap(bitmap);//imageView即为当前页面需要展示照片的控件,可替换
}
}
break;
}
}
特殊:
一般情况,以上代码在Android7.0以下,也就是api<24时,运行是没有任何问题的。可是当targetSdkVersion变成24及其以上并且在android7.0(及以上版本)系统运行时,会抛出异常:FileUriExposedException。
⑥ android 用AlertDialog启用相机权限的代码怎么写啊
/**
* @Description 调用系统相机照相,获取原图像
* @param activity 就是你的mainactivity
* @param dir 拍照后保存在本地的图片路径
* @param filename 图片的名称
* @param cmd 返回的requestCode
* @return void
*/
public static boolean takePhoto(final Activity activity, final String dir,
final String filename, final int cmd) {
String filePath = dir + filename;
// final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Log.d("test", "MediaStore.ACTION_IMAGE_CAPTURE"
+ android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final Intent intent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE == null ? "android.media.action.IMAGE_CAPTURE"
: android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final File cameraDir = new File(dir);
if (!cameraDir.exists()) {
// return false;
cameraDir.mkdirs();
}
final File file = new File(filePath);
final Uri outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
try {
activity.startActivityForResult(intent, cmd);
} catch (final ActivityNotFoundException e) {
return false;
}
return true;
}
然后在你的onactivityforresult方法里写:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case PHOTOGRAPH://拍照
if (resultCode == RESULT_OK) {
String url = FileHelper.Get_SDCardPath() + Constant.HHXH_IMGDIR
+ BitmapUtil.tempPhoto;//图片路径,和你前面调用相册时设的路径一样
Bitmap bitmap = BitmapUtil
.extractThumbNail(url, 480, 320, true);//这里是根据本地路径获取图片并压缩的,这个我写的代码比较多就不上传了
findviewbyid(R.id.imgPhoto).setImageBitmap(bitmap);
}
}
}
⑦ 一个关于android的问题,我通过下面的方法调用相机,可是怎么可以在拍照结束后获取照片的路径呢
Android调用系统拍照的代码:
创建Intent Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String imagePath = Environment.getExternalStorageDirectory() + "/image" ;
设置文件路径 File file = new File(imagePath);
if(!file.exists()){
file.mkdirs(); }
设置URI,指定相册拍照后保存图片的路径,Uri imageUri = Uri.fromFile(new File(imagePath, "image.jsp"));
openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(openCameraIntent, REQUEST_CODE_TAKING_PICTURES);
拍照完以后,文件就会保存在这个指定的目录下了。Uri 里指定了相机拍照的路径。
⑧ Android 自定义相机对焦问题
1、首先创建回调方法,代码如下:
触屏调用:设置surfaceView的触屏事件,在该事件中实现camera回调。