- 浏览: 94004 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
sincerehui:
android二维码的编码与解码(图片解码与摄像头解码) -
nyh1006:
学习一下!
UIScrollView循环滚动 -
bravewly:
为啥扫不出结果呢?是我扫的方式不对么?
android二维码的编码与解码(图片解码与摄像头解码) -
messigoogle:
我说您这个也是跟eoe上的差不多吧,加载的Assert中的图片 ...
android瀑布流 -
gundumw100:
LazyScrollView是偶写的。欢迎使用。呵呵。http ...
android瀑布流
public class ShootMainActivity extends Activity implements OnClickListener { // 用来标识请求照相功能的activity private static final int CAMERA_WITH_DATA = 3020; // 用来标识请求gallery的activity private static final int PHOTO_PICKED_WITH_DATA = 3021; private File mCurrentPhotoFile;// 照相机拍照得到的图片 private int DECIDE; private Button mPhotoButton; // 拍照 private Button mAlbumButton; // 相册 private ImageView mImage; private Uri mImageUri; private Uri uri; private byte[] mBuffer; // 保存拍照的字节信息 private boolean hasPic = false; private static final File PHOTO_DIR = new File( Environment.getExternalStorageDirectory() + "/DCIM/Camera"); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initUI(); } private void initUI() { mPhotoButton = (Button) this.findViewById(R.id.photobutton); mPhotoButton.setOnClickListener(this); mAlbumButton = (Button) this.findViewById(R.id.albumbutton); mAlbumButton.setOnClickListener(this); mImage = (ImageView) this.findViewById(R.id.image); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.photobutton: doTakePhoto(); break; case R.id.albumbutton: doPickPhotoFromGallery(); break; } } // 拍照的照片存储位置 public String getPhotoDir() { return Environment.getExternalStorageDirectory() + "/DCIM/Camera/1.jpg"; } // 拍照获取图片 protected void doTakePhoto() { PHOTO_DIR.mkdirs(); mCurrentPhotoFile = new File(getPhotoDir());// 给新照的照片文件命名 final Intent mIntent = getPhotoIntent(mCurrentPhotoFile); startActivityForResult(mIntent, CAMERA_WITH_DATA); } // 请求Gallery程序 protected void doPickPhotoFromGallery() { final Intent mIntent = getPhotoAlbumIntent(); startActivityForResult(mIntent, PHOTO_PICKED_WITH_DATA); } // 封装请求拍照的intent public static Intent getPhotoIntent(File f) { // Intent intent = new Intent("android.media.action.IMAGE_CAPTURE", // null); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE, null); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); Bundle bundle = new Bundle(); bundle.putString("cascde", "19921231010"); intent.putExtras(bundle); return intent; } // 封装请求Gallery的intent public static Intent getPhotoAlbumIntent() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); // intent.putExtra("crop", "true"); // intent.putExtra("aspectX", 1); // intent.putExtra("aspectY", 1); // intent.putExtra("outputX", 80); // intent.putExtra("outputY", 80); intent.putExtra("return-data", true); return intent; } protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case CAMERA_WITH_DATA: imageByteData(data); break; case PHOTO_PICKED_WITH_DATA: imageUri(data); break; } imageData(); } private void imageData() { if (!hasPic) return; else { switch (DECIDE) { case CAMERA_WITH_DATA: Bitmap mbBitmap = getUri2Bitmap(uri); // mImage.setImageURI(uri); mImage.setImageBitmap(mbBitmap); break; case PHOTO_PICKED_WITH_DATA: mImage.setImageURI(mImageUri); break; } } } // 将uri转成bitmap private Bitmap getUri2Bitmap(Uri uriTo) { ContentResolver resolver = getContentResolver(); try { // 将图片内容解析成字节数组 mBuffer = readStream(resolver.openInputStream(uriTo)); } catch (Exception e) { e.printStackTrace(); } // 将字节数组转换为ImageView可调用的Bitmap对象 Bitmap mBitmap = getPicFromBytes(mBuffer, null); return mBitmap; } // 将字节数组转换为ImageView可调用的Bitmap对象 public static Bitmap getPicFromBytes(byte[] bytes, BitmapFactory.Options opts) { if (bytes != null) if (opts != null) return BitmapFactory.decodeByteArray(bytes, 0, bytes.length, opts); else return BitmapFactory.decodeByteArray(bytes, 0, bytes.length); return null; } // 将图片内容解析成字节数组 public static byte[] readStream(InputStream inStream) throws Exception { byte[] buffer = new byte[1024]; int len = -1; ByteArrayOutputStream outStream = new ByteArrayOutputStream(); while ((len = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, len); } byte[] data = outStream.toByteArray(); outStream.close(); inStream.close(); return data; } private void imageUri(Intent data) { mImageUri = data.getData(); this.hasPic = true; this.DECIDE = PHOTO_PICKED_WITH_DATA; } public void imageByteData(Intent data) { if (mCurrentPhotoFile == null) mCurrentPhotoFile = new File(getPhotoDir()); uri = Uri.fromFile(mCurrentPhotoFile); this.hasPic = true; this.DECIDE = CAMERA_WITH_DATA; } }
发表评论
-
实现ScrollView的嵌套
2012-12-27 10:39 2108今天忽然需要写两个ScrollView嵌套,如: &l ... -
Android4.0新的SDK新特性 (汉化)
2012-10-31 15:40 1295Android 4.0 是一次重要的平台发布版,为用户和 ... -
Fragments (Android官方文档中文版)
2012-10-30 15:44 860原作者为: 苍山。感谢他分享的内容 概述 ... -
仿iphone实现两个view切换翻转动画
2012-10-26 14:59 2327看那些iPhone的view的切换效果非常帅,今天研究了一下从 ... -
android瀑布流
2012-10-26 10:54 2440今天研究了一下瀑布流,来说一下我实现它的方法。 看一下 ... -
android二维码的编码与解码(图片解码与摄像头解码)
2012-10-24 17:43 3706今天上网找了找可以从图片解析二维码 ,而不是从摄像头,找了半天 ... -
Android 连接WIF获取的信息剖析
2012-10-10 13:48 1088Android的参数大致分成两块:系统服务参数和平台系统 ... -
android使用字体库更改字体
2012-07-27 15:34 1347TextView tv = (TextView) thi ... -
Android代码混淆的实践
2012-07-11 12:46 841开发 apk 的时候当然要考虑保护好自己的代码,Android ... -
给Android的音量按钮添加监听事件
2012-07-09 17:02 1329@Override public boolean onK ... -
去掉listview背景变黑和顶底部边缘模糊
2012-06-29 17:24 1151listview在滚动是背景变黑:android:cacheC ... -
Android 在OnCreate()中获取控件高度与宽度
2012-06-20 17:01 2880试过在OnCreate()中获取控件高度与宽度的童鞋都知道,g ... -
android EditText插入字符串到光标所在位置
2012-03-07 14:01 2153EditText mEditText = (EditText) ... -
android tabactivity view切换edittext不弹出软键盘的解决方案
2011-12-21 12:03 2096public void onFocusChange(View ... -
更改CheckBox的样式
2011-12-13 08:43 2345首先在styles.xml添加如下的自定义样式: <s ... -
Android中RatingBar的自定义效果
2011-11-16 10:14 1483有时候android系统提供给我们的ratingbar效果 ... -
TabHost点击按钮布局改变
2011-11-15 09:48 1009main.xml <?xml version=&quo ... -
android获得控件在屏幕中的绝对坐标
2011-11-10 12:56 2570int[] location = new int[2] ; ... -
手势识别
2011-11-10 09:29 842[功能] 何为手势识别? 比如:你在屏幕上从左至右划出的一个动 ... -
Android px和dip以及sp的区别及转换代码
2011-11-09 16:11 1585/** * 根据手机的分辨率从 dp 的单位 转成为 px ...
相关推荐
android 拍照上传照片(新)源码,需要的可以下载下去看看。
android studio 调用摄像头拍照或选择相册照片,拿到图片并存储图片
这是github的项目源码地址。Android Studio2.3.3调用系统的Camera实现拍照功能,并将照片保存到本地内存卡中
android 拍照特定框内的照片,并载剪保存在本地,可以做成类似微信扫一扫,然后上传框内的照片到服务器,读取照片内容,有不明白的欢迎交流。。
自定义Android照相机,实现只拍摄矩形区域.完美解决预览及拍照时的照片拉伸失真,旋转等问题
delphi xe5 android 调用照相机摄像头拍照片camera,简单非常实用的原代码,无特定组件!
delphi xe6 android 调用照相机摄像头拍照片,简单非常实用的原代码,无特定组件,真机调试没问题.
通过调用手机的摄像头进行预览,菜单键或者拍照键进行拍照,输入文件名存为jpg格式,存储于SD卡中。
android拍照后将照片上传至web服务器,服务器端使用servlet+tomcat实现,拍照时实现自动对焦,并且可以调整相机焦距
Android11 适配,拍照问题。兼容Android11 targetSDk 31。有拍照功能和从相册选择图片,获取图片路径,保存图片。关联文章https://blog.csdn.net/u013778491/article/details/125638960
android调用摄像机拍照并通过httpservlet将图片上传至Pc端的服务器,此代码可以改造成上传文件的程序
实现了android前置摄像头和默认摄像头之间的切换,照片的预览,拍照,闪关灯的切换,焦距的切换,基于android sdk 2.2开发的,支持2.2以上版本。
Android 调用系统相机/相册 获取照片 在照片上添加文字水印
大部分照相功能都是在sd卡创建很多temp.jpg文件,浪费了用户的内存卡空间,经小弟总结,将利用过的无用文件删除
Android自定义身份证相机-IDCardCamera 效果图: 功能特点 自定义相机界面 支持开启闪光灯 支持手动触摸屏幕对焦 支持自动对焦 支持图片自动裁剪 支持图片手动不规则裁剪 2 使用 Step 1. 添加JitPack仓库 在...
android相机自定义圆形框拍照,保留圆形照片。
android摄像头拍照完整例子,该例子是经过测试可以使用的,可以实现调用android的摄像头进行拍照,同时还可以浏览拍到的相片
兼容 Android 7.0 的通过拍照或者从相册中选择照片来读取图片并且进行裁剪和输出到指定目录的 Android 工程代码
该项目包括调用系统相机拍照,和从系统选取图片,并对图片进行裁剪(仿微信做法),并解决三星手机拍照和选取照片角度旋转问题
自己写的android 拍照或从本地相册多次添加多张图片亲测可用