精华内容
下载资源
问答
  • 一个界面布局,有调用系统相机拍照功能,布局的Activity在Mainifest.xml文件里面设置为android:screenOrientation="portrait",在其他类型的手机上拍照没有横竖屏切换,可是在三星上调用系统拍照后出现了横竖屏的切换...
  • 第一次写博客,怎么还感觉有点紧张呢。好了,不废话了,下面进入正题。 最近在开发中遇到一个问题,我...第一步:调用相机,并设置保存目录 //先验证手机是否有sdcard String status = Environment.getExternalSt

    第一次写博客,怎么还感觉有点紧张呢大笑大笑大笑。好了,不废话了,下面进入正题。

    最近在开发中遇到一个问题,我通过调用系统相机拍照,然后获取到我拍的照片,但每次取到了照片都是被压缩过的。达不到我的需求,后台通过看很多大神的文章,终于实现了我想要的效果。

    第一步:调用相机,并设置保存目录

    //先验证手机是否有sdcard
    String status = Environment.getExternalStorageState();
    if (status.equals(Environment.MEDIA_MOUNTED))
    {
        try {
            File dir = new File(Environment.getExternalStorageDirectory() + "/" +"abc");
            if (!dir.exists()) dir.mkdirs();
            Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            File f = new File(dir, "123");
            Uri u = Uri.fromFile(f);
            intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, u);
            startActivityForResult(intent, TAKE_PICTURE);
    
        } catch (ActivityNotFoundException e) {
            Toast.makeText(SendInfoActivity.this, "没有找到储存目录", Toast.LENGTH_LONG).show();
        }
    
    } else {
        Toast.makeText(SendInfoActivity.this, "没有储存卡", Toast.LENGTH_LONG).show();
    }

    第二步:在onActivityResult做相应的处理

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    
            if (resultCode == RESULT_OK) {
                switch (requestCode) {
    
                    case TAKE_PICTURE:
                    
                            File f = new File(Environment.getExternalStorageDirectory()
    
                                    + "/" + "abc" + "/" + "123");
                            try {
                                Uri u = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(),
                                        f.getAbsolutePath(), null, null));
                                Bitmap bm =  getBitmapFromUri(getApplicationContext(),u);
    
    
                            } catch (FileNotFoundException e) {
                                e.printStackTrace();
    
                            }
                        
                        break;
                }
    
            }
        }
    public static Bitmap getBitmapFromUri(Context context,Uri uri) {
       try {
          // 读取uri所在的图片
          Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri);
          return bitmap;
       } catch (Exception e) {
          Log.e("[Android]", e.getMessage());
          Log.e("[Android]", "目录为:" + uri);
          e.printStackTrace();
          return null;
       }
    }


    这样你就可以得到原始的,没被压缩过的图片了


    那么问题来了,如果你觉得得到图片尺寸太大,那你就可以用下面的方法来设置图片的大小


    public static Bitmap setBitmapSize(Bitmap bm,int newWidth, int newHeight){
          int width = bm.getWidth();
          int height = bm.getHeight();
          // 设置想要的大小  
    //    int newWidth = 800;
    //    int newHeight = 1200;
          // 计算缩放比例  
          float scaleWidth = ((float) newWidth) / width;
          float scaleHeight = ((float) newHeight) / height;
          Matrix matrix = new Matrix();
          matrix.postScale(scaleWidth, scaleHeight);
          Bitmap mbitmap = Bitmap.createBitmap(bm,0,0,width,height,matrix,true);
          return mbitmap;
       }

    有了这些后,你又想把它上传到服务器,但是又觉得太占内存,想把它压缩一下,那下面的方法你就用的上了


    public static String bitmapToBase64(Bitmap bitmap,String tag) {
       String result = "";
       ByteArrayOutputStream bos = null;
       try {
          if (null != bitmap) {
             bos = new ByteArrayOutputStream();
             bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);// bitmap放入字节数组流中
            
                int options = 100;
                while (bos.toByteArray().length / 1024 > 50) { // 循环判断如果压缩后图片是否大于100kb,大于继续压缩
                   options -= 10;// 每次都减少10
                   bos.reset();// 重置baos即清空baos
                   bitmap.compress(Bitmap.CompressFormat.JPEG, options, bos);// 这里压缩(100 - options%,把压缩后的数据存放到baos            }
           
             bos.flush();// bos流缓存在内存中的数据全部输出,清空缓存
             bos.close();
    
             byte[] bitmapByte = bos.toByteArray();
             result = Base64.encodeToString(bitmapByte, Base64.DEFAULT);
          }
       } catch (Exception e) {
          e.printStackTrace();
       } finally {
          if (null != null) {
             try {
                bos.close();
             } catch (IOException e) {
                e.printStackTrace();
             }
          }
       }
       return result;
    }

    作为小白的我,想不到你更多的需求了,就写到这儿吧

    该博客只是记录本人在开发过程中遇到的问题,有不对的地方希望各位指正,同时也希望能帮到你一点大笑大笑大笑




    展开全文
  • 我们在开发中经常遇到一些功能需要调取系统相机拍照获取图片,或者有的时候直接打开图库获取图片,那我们怎么获取呢,今天分享下, 第一步,打开相机 public static final int CAMERA = 1025;// 拍照的请求码 ...

    我们在开发中经常遇到一些功能需要调取系统相机拍照获取图片,或者有的时候直接打开图库获取图片,那我们怎么获取呢,今天分享下,

    第一步,打开相机

    	public static final int CAMERA = 1025;// 拍照的请求码
    	public static final int ALBUM = 1026;// 选择图片的请求码
    /*
    	 * 设置从相机获取图片,返回图片路径
    	 */
    	public static String getImgFromCamra(Context context) {
    		String state = Environment.getExternalStorageState();
    		File mFolder;
    		String mImgName;
    		// 先检测是不是有内存卡。
    		if (state.equals(Environment.MEDIA_MOUNTED)) {
    			mFolder = new File(Environment.getExternalStorageDirectory(),
    					"bCache");
    			// 判断手机中有没有这个文件夹,没有就新建。
    			if (!mFolder.exists()) {
    				mFolder.mkdirs();
    			}
    			// 自定义图片名字,这里是以毫秒数作为图片名。
    			mImgName = System.currentTimeMillis() + ".jpg";
    			Uri uri = Uri.fromFile(new File(mFolder, mImgName));
    			// 调用系统拍照功能。打开箱机
    			Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    			intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
    			context.startActivityForResult(intent, CAMERA);
    			return mFolder + File.separator + mImgName;
    		} else {
    			Toast.makeText(context, "未检测到SD卡", Toast.LENGTH_SHORT).show();
    			return null;
    		}
    	}
    

    第二步,打开相册

    /*
    	 * 设置从本地相册获取图片
    	 */
    	public static void getImgFromAlbum(Context context) {
    		// 调用本地图库。
    		Intent intent = new Intent(Intent.ACTION_PICK,
    				android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    		context.startActivityForResult(intent, ALBUM);
    	}
    
    

    以上两步我们就是打开系统的相机和相册,打开之后拍照成功,或者选中文件之后怎么接收呢,请看以下:

    第三步 调用,获取回调地址

    	@Override
    	public void onClick(View v) {
    
    		switch (v.getId()) {
    		case R.id.bt_photograph_phone:// 从手机选择
    			UtilView.getImgFromAlbum(PhotoGraph.this);
    			break;
    		case R.id.bt_photograph_paizhao:// 拍照
    			photoLocalPath = UtilView.getImgFromCamra(PhotoGraph.this);
    			break;
    		}
    	}
    	
    	@Override
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    		switch (requestCode) {
    		case CAMERA:// 拍照
    			if (resultCode == RESULT_OK ) {
    				// 已经获取到图片路径了
    				//photoLocalPath即为路径 已经获取到
    			}
    			break;
    		case ALBUM:// 图库选择
    			if (resultCode == RESULT_OK && data != null) {
    				// 获取本地相册图片。
    				Uri uri = data.getData();
    	
    			}
    			break;
    		}
    	}
    

    注:以上是但图片,多图片选择请点击下方

    1.多图片选择 请点击使用Album框架

    2.多图片选择 请点击使用PictureSelector框架框架

    以上就是我们的使用方法,使用起来还是很简单的,小伙伴们如有不明白的地方,或者是写的不好的地方,欢迎留言

    展开全文
  • 熄屏快拍想要抓拍有趣的一幕,可精彩转瞬即逝,怎么等得及完成拿出手机、解锁、打开相机...使用【熄屏快拍】,手机处于熄屏状态时,快速按两次音量下键,即可自动拍摄并将照片存至相册。*打开 相机>设置>熄屏...
    c688873c010273eda927760256148cc1.gif

    即使是在锁屏状态下

    手机也能帮你完成一些高效便捷的操作哦!

    究竟有哪些呢?

    花部长帮大家总结了华为/荣耀手机的

    五大锁屏功能

    一起来get玩机新姿势!

    熄屏快拍

    想要抓拍有趣的一幕,可精彩转瞬即逝,怎么等得及完成拿出手机、解锁、打开相机...

    使用【熄屏快拍】,手机处于熄屏状态时,快速按两次音量下键,即可自动拍摄并将照片存至相册。

    b6c439dc103629e15885e361cf8ad4c5.gif

    *打开 相机>设置>熄屏快拍,此功能华为Mate30 Pro及华为Mate RS保时捷设计不支持,你可以从手机右下角向上滑动,快速打开相机。

    灭屏显示

    以往想要在手机上查看时间、日期等信息,需要点亮屏幕,费时且费电。

    【灭屏显示】支持在熄屏状态下显示时间、日期、手机电量等基础信息,实用性与高级感并存。同时你还可以设置开启此功能的时间区间,个性化定制你的熄屏界面。

    5db3381e866146573c9435373b6f5b4d.gif

    一键直达(灭屏显示,随时间流转变化色彩)

    *打开 设置>显示和亮度>灭屏显示

    底部工具栏

    如何快速找到手电筒、计算器等生活中常用的工具?对于不熟悉功能位置的人来说,需要花费不少时间。

    你只需点亮屏幕后,从底部向上滑动即可。底部工具栏包括【录音机】、【手电筒】、【计算器】以及【计时器】等实用工具。

    11d75a443ceac10745a86f9e3821fd71.gif

    SOS紧急求助

    遭遇突发意外时,除了保持冷静更要分秒必争。如果求救的方式太过繁琐,很有可能会错过被救助的黄金时间。

    在华为&荣耀手机的【个人紧急信息】里预置个人、医疗救援信息,熄屏状态下连按5次电源键即可快速发起【SOS紧急求助】功能,自动向紧急联系人发送求助及所在位置。

    fe1d2516cb05f602d486e5799516dc2b.gif

    一键直达(SOS紧急救助,添加个人求救信息)

    *打开 设置>安全>SOS紧急求助

    杂志锁屏

    设置手机壁纸时,要在众多喜欢的图片里挑出一张来,就好比身前摆了整桌美味佳肴,却只能挑选一道品尝。

    使用【杂志锁屏】,可以把多张订阅图片或相册照片设置为锁屏背景,让你的手机百变起来。

    dfeef3d04f45d891e21b7eedb7935f5a.gif

    *打开 设置>桌面和壁纸>杂志锁屏

    更多华为&荣耀手机的花式玩法

    记得保持关注花部长哟☺️

    7b527a2144267e2eee8eb99b6e43f442.gif
    展开全文
  • 自己学着写了一个调用安卓相机拍照的程序,但是拍下来的照片总是存储在手机默认的文件夹中,我在程序中已经自己设置了文件的存储路径,但是,不知道为什么,拍完照却存不进去!!!???
  • 我们在写IOS项目的时候 会用到一些系统的功能 比如相片选择器 比如调用照相机 再比如播放视屏...调用系统功能设置显示语言怎么设置呢 第一步: 在项目里添加中文简体语言 如图: 第二步: 然后在info.plist

    我们在写IOS项目的时候

    会用到一些系统的功能 比如相片选择器 比如调用照相机 再比如播放视屏的时候 我们会发现在这些系统提供的功能里 字体都是英文形式显示的

    是因为在项目中 系统默认给你显示的是英文字体

    若想显示中文字体,我们需要修改项目里的语言设置

    调用系统功能设置显示语言怎么设置呢

    第一步:

    在项目里添加中文简体语言
    如图:

    第二步:
    然后在info.plist里选择语言为中文
    如图:

    展开全文
  • 首先在info.plist加上这一条这样就可以使我们调...下面我来简单介绍下,怎么调用系统相机和系统相册来更换图片~ 首先,我们要遵守几个代理啦~UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIAc
  • 但是在qq,其他软件中可以调用相机,可以打开相机的时候。windows hello 就是打不开,不知道怎么回事。 尝试打开电源选项,有一个 选项,还原一下默认设置。就打开了。 就可以设置人脸识别了。实际测试成功,...
  • android自定义相机若干问题解决方案

    千次阅读 2013-05-06 20:52:32
    具体怎么调用不说了,分享一下洒家所遇到的一些问题以及解决方法1 一、Parameters.setPreviewSize()以及Parameters.setPictureSize()后异常突出  某款相机camera只支持某几种固定的参数,比如中兴ZTE880E只支持...
  • 我在里面设置了两个函数WLocationgFORPhoto //给图片写经纬度 和WPhotomark //把图片的数据写入数据库 在第一个函数执行完之后,Activity就被系统销毁了 自动调用onSaveInstanceState和onRestoreInstanceState ...
  • // 下面这句指定调用相机拍照后的照片存储的路径 if (!PHOTO_DIR.exists()) { boolean iscreat = PHOTO_DIR.mkdirs();// 创建照片的存储目录 } tempFile = new File(PHOTO_DIR, ...
  • vs 2008 win32程序使用大内存 (>2GB)设置

    千次阅读 2018-02-08 18:42:00
    今天用vc 2008调用matlab相机标定工具箱stereo rectify的DLL,程序运行到一半就挂。试了N次都是这样。没办法,写了一个matlab测试程序,测试没问题。后面想到有没有可能是内存不够,原来在32位机上碰到过这个问题,...
  • 今天用vc 2008调用matlab相机标定工具箱stereo rectify的DLL,程序运行到一半就挂。 试了N次都是这样。 没办法,写了一个matlab测试程序,测试没问题。 后面想到有没有可能是内存不够,原来在32位机上碰到...
  • http://blog.csdn.net/mudeer2012/article/details/8453310 ...对于使用者来说,只需要知道怎么调用方法就行了。不需要知道内部设置和实现。 就像傻瓜相机一样。 目的是:简化客户程序与子系统之间...
  • @TOC教你怎么正确开启摄像头 首先查看你的window下摄像头是否正常使用 简单操作:可以点击“开始”搜索相机运行,如果运行成功就说明在window下可以正常使用。 虚拟机如何调用摄像头 我是linux18.04,可以简单测试...
  • 修复:在Q平台直接调用相机时的空指针问题。 3.1.0: 适配:android 11 重要:createAlbum方法新增useWidth参数 意义:是否需要使用图片的宽高数据。 true:会保证宽高数据的正确性,耗时,扫描图片慢。 false:不...
  • 昨天知道了cap.set的函数,然后作死的调用了一下来试试,想知道各个参数的效果,把默认的参数给改了,然后无法运行,重启之后已经不能用opencv打开了,用w10自带的相机打开摄像头也变成修改后的样子(亮度非常高,帧...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
  •  bootcfg /default 设置默认引导项。  bootcfg /add 向引导列表中添加 Windows 安装。  bootcfg /rebuild 重复全部 Windows 安装过程并允许用户选择要添加的内容。  注意:使用 bootcfg /rebuild 之前,应...

空空如也

空空如也

1 2
收藏数 22
精华内容 8
关键字:

怎么设置调用相机