- 浏览: 98409 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
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 2203今天忽然需要写两个ScrollView嵌套,如: &l ... -
Android4.0新的SDK新特性 (汉化)
2012-10-31 15:40 1399Android 4.0 是一次重要的平台发布版,为用户和 ... -
Fragments (Android官方文档中文版)
2012-10-30 15:44 964原作者为: 苍山。感谢他分享的内容 概述 ... -
仿iphone实现两个view切换翻转动画
2012-10-26 14:59 2422看那些iPhone的view的切换效果非常帅,今天研究了一下从 ... -
android瀑布流
2012-10-26 10:54 2514今天研究了一下瀑布流,来说一下我实现它的方法。 看一下 ... -
android二维码的编码与解码(图片解码与摄像头解码)
2012-10-24 17:43 3874今天上网找了找可以从图片解析二维码 ,而不是从摄像头,找了半天 ... -
Android 连接WIF获取的信息剖析
2012-10-10 13:48 1189Android的参数大致分成两块:系统服务参数和平台系统 ... -
android使用字体库更改字体
2012-07-27 15:34 1435TextView tv = (TextView) thi ... -
Android代码混淆的实践
2012-07-11 12:46 968开发 apk 的时候当然要考虑保护好自己的代码,Android ... -
给Android的音量按钮添加监听事件
2012-07-09 17:02 1393@Override public boolean onK ... -
去掉listview背景变黑和顶底部边缘模糊
2012-06-29 17:24 1226listview在滚动是背景变黑:android:cacheC ... -
Android 在OnCreate()中获取控件高度与宽度
2012-06-20 17:01 2951试过在OnCreate()中获取控件高度与宽度的童鞋都知道,g ... -
android EditText插入字符串到光标所在位置
2012-03-07 14:01 2210EditText mEditText = (EditText) ... -
android tabactivity view切换edittext不弹出软键盘的解决方案
2011-12-21 12:03 2158public void onFocusChange(View ... -
更改CheckBox的样式
2011-12-13 08:43 2410首先在styles.xml添加如下的自定义样式: <s ... -
Android中RatingBar的自定义效果
2011-11-16 10:14 1547有时候android系统提供给我们的ratingbar效果 ... -
TabHost点击按钮布局改变
2011-11-15 09:48 1093main.xml <?xml version=&quo ... -
android获得控件在屏幕中的绝对坐标
2011-11-10 12:56 2628int[] location = new int[2] ; ... -
手势识别
2011-11-10 09:29 907[功能] 何为手势识别? 比如:你在屏幕上从左至右划出的一个动 ... -
Android px和dip以及sp的区别及转换代码
2011-11-09 16:11 1653/** * 根据手机的分辨率从 dp 的单位 转成为 px ...
相关推荐
在Android应用开发中,提供用户调用照相机拍照...以上就是关于“android调用照相机拍照与选择本地照片功能”的核心知识点,开发者在实现这些功能时,需要注意优化用户体验,合理管理文件,以及遵循Android的最佳实践。
在Android开发中,调用相机拍照和选择相册照片是常见的功能,这涉及到Android系统级别的交互和权限管理。本文将详细讲解如何在Android Studio中实现这两个功能,并将获取的图片进行存储。 首先,我们需要在...
在使用Delphi XE6开发Android应用程序时,调用照相机功能是常见的需求,这使得用户可以直接通过应用拍摄照片。本教程将详细讲解如何在Delphi XE6中实现这一功能,无需额外的组件,只需利用系统自带的功能,确保代码...
在Android应用开发中,"Android拍照与相册图片裁剪"是一个常见的功能需求,涉及到用户交互和权限管理等多个方面。以下将详细阐述实现这一功能的关键知识点: 1. **请求相机权限**:在Android 6.0(API级别23)及...
在Android平台上,实现手机拍照并保存照片涉及到一系列的步骤和技术,包括权限管理、启动相机服务、处理相机回调、保存图片到SD卡等。下面将详细解释这些知识点。 首先,我们需要在`AndroidManifest.xml`文件中添加...
在使用Delphi XE5开发Android应用程序时,调用照相机功能是常见的需求,以便让用户拍摄照片并集成到应用中。本示例着重讲解如何在Delphi XE5环境下,利用Android API来实现这一功能,无需额外的组件,只通过原生代码...
本篇将深入探讨如何实现Android调用JavaScript接口启动照相机拍照,并将拍摄的照片上传至服务器。 一、Android与JavaScript交互基础 1. WebView组件:Android中的WebView是一个可以加载和显示网页内容的控件,它是...
总结,实现Android后台连续静默拍照涉及了权限管理、相机API的使用、服务的创建与管理、静音设置、图片存储以及性能优化等多个方面。开发者需要深入理解Android系统的工作原理,才能成功实现这一功能。
在Android开发中,有时我们需要实现一些特殊的相机功能,比如不预览的拍照或者后台拍照。这些需求可能出现在一些需要高效能、低资源消耗或者隐私保护的场景。本篇将详细探讨如何实现这样的功能。 首先,要理解“不...
这是github的项目源码地址。Android Studio2.3.3调用系统的Camera实现拍照功能,并将照片保存到本地内存卡中
调用Android系统拍照功能后,三星手机拍摄后的照片被旋转了90度,横着拍给你变成竖的,竖的拍给你变成横的。其它品牌的手机都是正常的,就三星出现这个怪事。 在Android适配上,我原来一直以为国内的小米手机够奇葩...
在Android平台上,自定义拍照功能是一项常见的需求,尤其是在开发与图像处理相关的应用时。本教程将深入探讨如何解决Android拍照时出现的竖拍照片横向显示的问题。这个问题通常出现在使用SurfaceView来显示相机预览...
在Android平台上,开发一款应用程序,实现“拍照特定框内的照片,并裁剪保存在本地”的功能,可以极大地提升用户体验,尤其适用于二维码扫描、文档拍摄等场景。这个功能涉及到多个技术点,包括相机权限管理、相机API...
5. **文件存储与访问**: 在Android中,照片可能需要保存到本地,以便于上传或用户查看。通常,我们会在外部存储(如SD卡)的特定目录下创建文件,使用`Environment.getExternalStorageDirectory()`获取根目录,然后...
通过以上步骤,我们可以实现一个完整的Android应用,它可以调用相机拍照,将图片保存到本地,然后通过HTTPServlet上传到PC端服务器。在实际项目中,还可能需要考虑错误处理、进度显示、多图上传等复杂情况。理解并...
在Android应用开发中,实现对焦和拍照功能是常见的需求,尤其在开发摄影类或社交类应用时。本文将详细讲解如何在Android中实现在点击屏幕后进行对焦并拍照的功能。 首先,我们需要理解Android的相机API。Android...
新鲜出炉的android照相示例,绝对好使啊! 亲测通过: android5.0 ,sony xperia ultra z. 下载的3个文件,不用做任何改动(说import和packageName的你走开),直接可以用。 resultCode,EXTRA_OUTPUT,ACTION_IMAGE_...
在Android开发中,"androidstudio拍照与人脸识别"是一个常见的应用场景,尤其在开发涉及用户交互和安全性的应用时。本文将详细讲解如何在Android Studio中实现这个功能,主要使用Android自带的类库,不依赖任何第三...
Delphi XE5 Android 调用照相机获取拍的照片 Delphi XE5 是一款功能强大且流行的开发环境,它提供了许多优秀的功能,包括对 Android 平台的支持。在 Android 平台上,Delphi XE5 提供了许多有用的组件和 API,允许...
本文将详细解析如何实现Android拍照功能,包括切换前后置摄像头、照片预览、拍照、控制闪光灯以及调整焦距等核心知识点。 1. **切换前后置摄像头**: 在Android中,通过`Camera`类可以访问设备上的摄像头。`Camera...