① 如何调用android的拍照或本地相册选取,然后再实现相片上传服务器
首先是拍照:使用Intent即可,
[java] view plainprint?
01.final String start = Environment.getExternalStorageState();
02.private static final String PHOTOPATH = "/photo/";
03.
04.if(start.equals(Environment.MEDIA_MOUNTED)){
05.Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
06.File file = new File(Environment.getExternalStorageDirectory()+PHOTOPATH);
07.if(!file.exists()){
08.file.mkdirs();
09.}
10.tempphontname = System.currentTimeMillis()+".jpg";
11.buffer.append(Environment.getExternalStorageDirectory()+PHOTOPATH).append(tempphontname);
12.intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(buffer.toString())));
13.startActivityForResult(intent, 1);
14.}
final String start = Environment.getExternalStorageState();
private static final String PHOTOPATH = "/photo/";
if(start.equals(Environment.MEDIA_MOUNTED)){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory()+PHOTOPATH);
if(!file.exists()){
file.mkdirs();
}
tempphontname = System.currentTimeMillis()+".jpg";
buffer.append(Environment.getExternalStorageDirectory()+PHOTOPATH).append(tempphontname);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(buffer.toString())));
startActivityForResult(intent, 1);
}
其次是从本地相册选:依旧是Intent.
如下代码:
[java] view plainprint?
01.if(start.equals(Environment.MEDIA_MOUNTED)){
02. Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);
03. getImage.addCategory(Intent.CATEGORY_OPENABLE);
04. getImage.setType("image/jpeg");
05. startActivityForResult(getImage, 0);
06.}
if(start.equals(Environment.MEDIA_MOUNTED)){
Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);
getImage.addCategory(Intent.CATEGORY_OPENABLE);
getImage.setType("image/jpeg");
startActivityForResult(getImage, 0);
}
接下来是主要的:因为调用完系统的方法后,回返回到回调方法onActivityResult(int, int, Intent)中,
在里面进行主要的照片上传服务器的操作,
见代码:
[java] view plainprint?
01.@Override
02. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
03. ContentResolver resolver = getContentResolver();
04. if(requestCode==1)//
05. {
06. if(resultCode==Activity.RESULT_OK)
07. {
08. if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
09. {
10.ew Thread(new Runnable()
11. {
12. @Override
13. public void run() {
14.//进行上传操作
15.}
16.}.start();
转载
② android 怎么裁剪drawable
可使用ScaleType来指定drawable的缩放方式,来实现裁剪效果。
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。
设置的方式包括:
1. 在layout xml中定义android:scaleType="CENTER"
2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);
Scaletype的取值说明:
1. SetScaleType(ImageView.ScaleType.CENTER);
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
2. SetScaleType(ImageView.ScaleType.CENTER_CROP);
按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
3. setScaleType(ImageView.ScaleType.CENTER_INSIDE);
将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
4. setScaleType(ImageView.ScaleType.FIT_CENTER);
把图片按比例扩大/缩小到View的宽度,居中显示
5. FIT_START, FIT_END在图片缩放效果上与FIT_CENTER一样,只是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。
在此就不给出示例了。
6. FIT_XY
不按比例缩放图片,目标是把图片塞满整个View。
③ android怎么拍照并获取照片
点击拍照键 就会自动拍照并保存了
④ android 拍照获取照片的文字,技术点是啥呀
这其实跟android没有多大关系,拍照识别是单独的一项技术,但是android也有自己的识别包名字叫做:android-ocr 图片文字识别技术相关包,大体的原理就是,先将照片转换为黑白,然后进行像素点识别,就跟识别车牌的原理是一样的
⑤ 为啥android拍照后的裁剪界面闪了一下就消失了
步骤:点击按钮,弹出对话框,选择拍照或者从相册选择图片,并且保存到SD卡中,并且显示在Imageview中
首先最终结果存在了imageUri中,但从拍照Intent到裁剪Intent之间结果是怎么传的呢?估计是通过Intent中的data来传的,当数据过大,即超过1M时就崩了!!!!所以我们要想办法分离这个过程,将中间数据先暂存一下放在imageUri ,然后再调裁剪Intent,最后把结果存在imageCropUri 中。
这样就完美解决拍照裁剪图片完成之后崩溃问题。
⑥ 安卓智能手机有自拍截图功能吗
肯定有啦,不过需要ROOT权限然后安装个截屏软件就可以任意截屏了!
⑦ 有人知道怎么禁止android系统 拍照和截屏么
这个啊,最简单的是拆掉摄像头,否则软件层面,如果你不是个改系统内核的高手,很难做到软件层阻止访问摄像头
⑧ 在android开发中,拍照后的图片进行剪切后,怎么保存呢
流,给你一个保存的方法
你应该是拍照以后再onActivityResult中回去图片 再进行操作 得到最终的bitmap 在用下面的方法保存指定图片的路径、名称保存。
// 保存拍摄的照片到手机的sd卡
private void SavePicInLocal(Bitmap bitmap) {
FileOutputStream fos = null;
BufferedOutputStream bos = null;
ByteArrayOutputStream baos = null; // 字节数组输出流
try {
baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] byteArray = baos.toByteArray();// 字节数组输出流转换成字节数组
picName = (list.size() + 1) < 10 ? memberInfoID + "-0"
+ (list.size() + 1) + ".jpg" : memberInfoID + "-"
+ (list.size() + 1) + ".jpg";
File file = new File(PHOTO_DIR, picName);
// 将字节数组写入到刚创建的图片文件中
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(byteArray);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (baos != null) {
try {
baos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
这个保存的是缩略以后的 有50k左右,
⑨ android 拍照,剪切,上传头像
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra("crop", "true"); // 裁剪
intent.putExtra("aspectX", 5);// 裁剪框比例
intent.putExtra("aspectY", 4);
intent.putExtra("outputX", 500);// 输出图片大小
intent.putExtra("outputY", 400);
intent.putExtra("outputFormat",
Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("return-data", false);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
intent.putExtra("noFaceDetection", false); // no face detection
startActivityForResult(intent, requestCode);
⑩ android拍照图片裁剪的问题
在裁剪代码执行之前加上这几句试试
try {
Runtime.getRuntime().exec("chmod 777 " + file.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}