Android打开相机和相册实例代码_Android

本文实例为大家分享了Android打开相机和相册具体代码,供大家参考,具体内容如下

打开相机 

 /**
   * 选择相机
   */

  private void showCamera() {
    // 跳转到系统照相机
    Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (cameraIntent.resolveActivity(getPackageManager()) != null) {
      // 设置系统相机拍照后的输出路径
      // 创建临时文件
      mTmpFile = OtherUtils.createFile(getApplicationContext());

      cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mTmpFile));
      startActivityForResult(cameraIntent, REQUEST_CAMERA);
    } else {
      Toast.makeText(getApplicationContext(), R.string.msg_no_camera, Toast.LENGTH_SHORT).show();
    }

  } 

打开相册

Intent albumIntent = new Intent(Intent.ACTION_PICK, null);
    albumIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
    startActivityForResult(albumIntent, REQUEST_ALBUM_OK);

onActivityResult 

 @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {
      case REQUEST_CAMERA:
        //请求相机
        if (mTmpFile != null) {
          Log.d(TAG, "onActivityResult: 请求相机: " + mTmpFile.getAbsolutePath());

          Picasso.with(this).load(mTmpFile).centerCrop().resize(OtherUtils.dip2px(this,100),OtherUtils.dip2px(this,100))
              .error(R.mipmap.pictures_no).into(mIvDispaly);
        }
        break;
      case REQUEST_ALBUM_OK:
        Log.d(TAG, "onActivityResult:相册 " + data.getData().toString());
        ContentResolver resolver = getContentResolver();

        try {
          InputStream inputStream = resolver.openInputStream(data.getData());

          Bitmap bitmap = BitmapFactory.decodeStream(inputStream);

          mIvDispaly.setImageBitmap(bitmap);

        } catch (FileNotFoundException e) {

          e.printStackTrace();
        }

        //        Cursor query = resolver.query(data.getData(), null, null, null, null);
//
//        String str = null;
//        while (query.moveToNext()) {
//          Log.d(TAG, "onActivityResult:数量 " + query.getCount());
//          str =query.getString(query.getColumnIndex(MediaStore.Images.Media.DATA));
//          Log.d(TAG, "onActivityResult: 列名" + query.getString(query.getColumnIndex(MediaStore.Images.Media.DATA)));
//        }
//        query.close();
//        Picasso.with(this).load(new File(str)).centerCrop().resize(OtherUtils.dip2px(this,100),OtherUtils.dip2px(this,100))
//            .error(R.mipmap.pictures_no).into(mIvDispaly);
        break;

    }
  } 

OtherUtils 

import android.content.Context;
import android.os.Environment;

import java.io.File;
import java.util.Date;

/**
 * Created by 刘楠 on 2016/7/20 0020.22:37
 */
public class OtherUtils {
  public static int dip2px(Context context, float dpValue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dpValue * scale + 0.5f);
  }

  public static int px2dip(Context context, float pxValue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (pxValue / scale + 0.5f);
  }

  /**
   * 获取拍照相片存储文件
   * @param context
   * @return
   */
  public static File createFile(Context context){
    File file;
    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
      String timeStamp = String.valueOf(new Date().getTime());
      file = new File(Environment.getExternalStorageDirectory() +
          File.separator + timeStamp+".jpg");
    }else{
      File cacheDir = context.getCacheDir();
      String timeStamp = String.valueOf(new Date().getTime());
      file = new File(cacheDir, timeStamp+".jpg");
    }
    return file;
  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android打开相机
android打开相册
android 相册动画实例、android调用相机相册、android 相机相册、android 相机相册选择、android 调取相机相册,以便于您获取更多的相关知识。

时间: 2024-09-25 23:04:19

Android打开相机和相册实例代码_Android的相关文章

Android打开相机和相册实例代码

本文实例为大家分享了Android打开相机和相册具体代码,供大家参考,具体内容如下 打开相机 /** * 选择相机 */ private void showCamera() { // 跳转到系统照相机 Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (cameraIntent.resolveActivity(getPackageManager()) != null) { // 设置系统相机拍照后的输出路径

Android 底部导航控件实例代码_Android

一.先给大家展示下最终效果 通过以上可以看到,图一是简单的使用,图二.图三中为结合ViewPager共同使用,而且都可以随ViewPager的滑动渐变色,不同点是图二为选中非选中两张图片,图三的选中非选中是一张图片只是做了颜色变化. 二. 需求 我们希望做可以做成这样的,可以在xml布局中引入控件并绑定数据,在代码中设置监听回调,并且配置使用要非常简单! 三.需求分析 根据我们多年做不明确需求项目的经验,以上需求还算明确.那么我们可以采用在LinearLayout添加子View控件,这个子Vie

Android 动态添加Fragment的实例代码_Android

1.fragment1布局及代码 布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=&quo

Android自定义控件下拉刷新实例代码_Android

实现效果: 图片素材: --> 首先, 写先下拉刷新时的刷新布局 pull_to_refresh.xml: <resources> <string name="app_name">PullToRefreshTest</string> <string name="pull_to_refresh">下拉可以刷新</string> <string name="release_to_refre

Android okhttputils现在进度显示实例代码_Android

OkHttpUtils是一款封装了okhttp的网络框架,支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,整合Gson,自动解析返回对象,支持Https和自签名证书,支持cookie自动管理,扩展了统一的上传管理和下载管理功能. //download the new app private void downLoadNewApp(NewVersion.XianzaishiRfBean version) { if (StringUtils.isEmpt

Android 保存Fragment 切换状态实例代码_Android

前言  一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,这里分享一个方法.  正文  一.应用场景   1.不使用ViewPager   2.不能用replace来切换Fragment,会导致Fragment释放(调用onDestroyView)  二.实现 1.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:

Android CoordinatorLayout详解及实例代码_Android

Android CoordinatorLayout详解 一.CoordinatorLayout有什么作用 CoordinatorLayout作为"super-powered FrameLayout"基本实现两个功能: 1.作为顶层布局 2.调度协调子布局 CoordinatorLayout使用新的思路通过协调调度子布局的形式实现触摸影响布局的形式产生动画效果.CoordinatorLayout通过设置子View的 Behaviors来调度子View.系统(Support V7)提供了A

Android 嵌套Fragment的使用实例代码_Android

前言   之前的文章有介绍ActivityGroup,不少人问嵌套使用的问题,同样的需求在Fragment中也存在,幸好在最新的Android support 包已经支持这一特性!这里就跳过Fragment的介绍,需要注意的是TabActivity已经被标记为弃用(deprecated). 正文  一.准备   关于最新的Android兼容包的介绍,参见官网.可以在android sdk目录下extras/android/support/v13/android-support-v13.jar找到

Android开发之毛玻璃效果实例代码_Android

这是在网上找的,不过忘了在哪里找的,经过很多比较测试,发现这个方法不会 oom,目前来看 我一直没有遇过,今天才找到这个以前建立的工程,记录下来: 先给大家展示下效果图: public class FastBlur { public static Bitmap doBlur(Bitmap sentBitmap, int radius, boolean canReuseInBitmap) { // This is a compromise between Gaussian Blur and Box