精华内容
下载资源
问答
  • 主要介绍了Android 实现调用系统照相机拍照和录像的功能的相关资料,需要的朋友可以参考下
  • Android照相机拍照Camera

    2016-11-25 13:52:05
    Camera、 1.权限设置 2.intent、startActivityForResult启动照相 3.onActivityResult 接收照相的返回值 3.1、数据图片保dsdcard 3.2、读取sdcard图片 3.3、图片加载到imageView...启动系统的相机拍照 */ p


    
    
    	Camera、
    	1.权限设置
    	2.intent、startActivityForResult启动照相
    	3.onActivityResult 接收照相的返回值
    		3.1、数据图片保dsdcard
    		3.2、读取sdcard图片
    		3.3、图片加载到imageView上
    	4.点击图片;popupwindow或者新页面放大展示
    
    
    	/**
    	 *  1.启动系统的相机拍照
    	 */
    	private void initPhoto() {
    		// 隐式启动 系统相机
    		Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    		startActivityForResult(intent, 1001);//注意重写:onActivityResult
    	}
    
    	@Override//2.
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    		if (requestCode == 1001) {
    			if (null != data && data != null && data.getExtras() != null) {
    				try {
    					String path = saveImg(data);
    					Bitmap bitins = getSdcardImg(path);
    					ivLogo.setImageBitmap(bitins);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		}
    		super.onActivityResult(requestCode, resultCode, data);
    	}
    
    	/**
    	 * 3.1
    	 * @方法用于把图片存到本地
    	 * @param data  拍照intent返回到图片数据集
    	 * @return	返回图片存储本地后的 、详细图片地址
    	 * @throws FileNotFoundException  io操作的异常
    	 */
    	private String saveImg(Intent data) throws FileNotFoundException {
    		Bitmap bit = (Bitmap) data.getExtras().get("data");// 得到照相拍照的图片
    		String fileName = System.currentTimeMillis() + "";
    		// 保存图片 路径 名称
    		String path = Environment.getExternalStorageDirectory() + "/" + fileName + ".jpg";
    		// 图片路径存入数据库,用于不同用户登录使用
    		// 输出流 保存到本地sdcard
    		FileOutputStream fos = new FileOutputStream(path);
    		// 1.格式 2.质量 3. 输出流保存位置
    		boolean b = bit.compress(CompressFormat.JPEG, 100, fos);
    		if (b) {
    			Toast.makeText(this, " img save successful", Toast.LENGTH_LONG).show();
    		} else {
    			Toast.makeText(this, " img save false ", Toast.LENGTH_LONG).show();
    		}
    		return path;
    	}
    
    	/**
    	 * 3.2
    	 * @param path  本地图片地址
    	 * @return  返回得到的 Bitmap 图片对象
    	 * @throws FileNotFoundException  io读取异常
    	 */
    	private Bitmap getSdcardImg(String path) throws FileNotFoundException{
    		FileInputStream fis = new FileInputStream(path);
    		Bitmap bitins = BitmapFactory.decodeStream(fis);
    		return bitins;
    	}
    
    	//给定图片宽高,返回压缩后的图片
     public static Bitmap zoomBitmap(Bitmap bitmap, int width, int height) {  
            int w = bitmap.getWidth();  
            int h = bitmap.getHeight();  
            Matrix matrix = new Matrix();  
            float scaleWidth = ((float) width / w);  
            float scaleHeight = ((float) height / h);  
            matrix.postScale(scaleWidth, scaleHeight); // 不改变原来图像大小  
            Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, w, h, matrix, true);  
            return newbmp;  
        }  
    
    
    //Activity Send Bitmap To Fragment
        	FragmentManager fm = getFragmentManager();
    		FragmentTransaction tran = fm.beginTransaction();
    		ImageFragment imgFragment = new ImageFragment();
    		Bundle b = new Bundle();
    		b.putParcelable("bit", bitins);
    		imgFragment.setArguments(b);
    		tran.replace(R.id.rl_layout, imgFragment);
    		tran.commit();
    
    @Override
    	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    		Bitmap b = (Bitmap) getArguments().get("bit");
    		ImageView iv = new ImageView(mContext);
    		Log.e(TAG, "====onCreateView========");
    		iv.setImageBitmap(b);
    		iv.setLayoutParams( new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    		return  iv;
    	}
    
    
    
    	照相机拍照需要的权限:
    <!--写sd卡权限-->
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <!--读sd卡的权限 -->
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!--操作摄像头的权限 -->
       <uses-permission android:name="android.permission.CAMERA" />


    项目demo下载地址:

    http://download.csdn.net/detail/flyingsir_zw/9693403








    展开全文
  • Android 调用系统照相机拍照和录像

    千次阅读 2017-03-02 15:10:46
    Android 调用系统照相机拍照和录像

    Android 调用系统照相机拍照和录像

    项目的布局相当简单,只有一个Button:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >
    
        <Button
            android:onClick="click"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="调用系统相机拍照" />
    
    </RelativeLayout>

    首先打开packages\apps\Camera文件夹下面的清单文件,找到下面的代码:

           <activity android:name="com.android.camera.Camera"
                    android:configChanges="orientation|keyboardHidden"
                    android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                    android:screenOrientation="landscape"
                    android:clearTaskOnLaunch="true"
                    android:taskAffinity="android.task.camera">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.media.action.IMAGE_CAPTURE" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.media.action.STILL_IMAGE_CAMERA" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>

    相关代码如下:

    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        public void click(View view) {
            /*
             * <intent-filter> <action
             * android:name="android.media.action.IMAGE_CAPTURE" /> <category
             * android:name="android.intent.category.DEFAULT" /> </intent-filter>
             */
            // 激活系统的照相机进行拍照
            Intent intent = new Intent();
            intent.setAction("android.media.action.IMAGE_CAPTURE");
            intent.addCategory("android.intent.category.DEFAULT");
            
            //保存照片到指定的路径
            File file = new File("/sdcard/image.jpg");
            Uri uri = Uri.fromFile(file);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
            
            startActivity(intent);
    
        }
    
    }

    实现激活录像功能的相关代码也很简单:

    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        public void click(View view) {
            /*
             * <intent-filter> <action
             * android:name="android.media.action.VIDEO_CAPTURE" /> <category
             * android:name="android.intent.category.DEFAULT" /> </intent-filter>
             */
            // 激活系统的照相机进行录像
            Intent intent = new Intent();
            intent.setAction("android.media.action.VIDEO_CAPTURE");
            intent.addCategory("android.intent.category.DEFAULT");
    
            // 保存录像到指定的路径
            File file = new File("/sdcard/video.3pg");
            Uri uri = Uri.fromFile(file);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
    
            startActivityForResult(intent, 0);
        }
        
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            Toast.makeText(this, "调用照相机完毕", 0).show();
            super.onActivityResult(requestCode, resultCode, data);
            
        }
    
    }
    展开全文
  • Android自定义相机,切换前后摄像头,照相机拍照Ctrl +C Ctrl+V 可以直接 run 起来,注释比较详细;源码下载 package="com.tomorrow_p.camera_p">

    Android自定义相机,简单实现切换前后摄像头,照相机拍照 

    Ctrl +C  Ctrl+V 可以直接 run 起来,注释比较详细;源码下载


    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.tomorrow_p.camera_p">
    
        <!-- 调用摄像头权限 -->
        <uses-permission android:name="android.permission.CAMERA" />
        <!-- 挂载sd卡 -->
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <!-- sd卡读写权限 -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name="com.tomorrow_p.camera_p.PreviewImageActivity"></activity>
        </application>
    
    </manifest>


    android6.0及以上需要 动态申请相机权限:

            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 1);
            }

    package com.tomorrow_p.camera_p;
    
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.PixelFormat;
    import android.hardware.Camera;
    import android.os.Bundle;
    import android.os.Environment;
    import android.util.Log;
    import android.view.KeyEvent;
    import android.view.MotionEvent;
    import android.view.Surface;
    import android.view.SurfaceHolder;
    import android.view.SurfaceView;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.WindowManager;
    import android.widget.Toast;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class MainActivity extends Activity {
        private static final String TAG = "ansen";
        private View mRelativeLayout;
        private Camera mCamera;
        private Camera.Parameters mParameters = null;
        private int cameraPosition = 1;//0代表前置摄像头,1代表后置摄像头
        private SurfaceHolder mHolder;
    
        Bundle bundle = null; // 声明一个Bundle对象,用来存储数据
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    //        requestWindowFeature(Window.FEATURE_NO_TITLE);//没有标题
    //        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏
    //        this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//拍照过程屏幕一直处于高亮
    
            setContentView(R.layout.activity_main);
    
            mRelativeLayout = findViewById(R.id.relativeLayout);
            SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
    
            surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
            surfaceView.getHolder().setFixedSize(176, 144); //设置Surface分辨率
            surfaceView.getHolder().setKeepScreenOn(true);// 屏幕常亮
            surfaceView.getHolder().addCallback(new SurfaceCallback());//为SurfaceView的句柄添加一个回调函数
        }
    
        public void takePhoto(View v) {
            if (mCamera != null) {
                // 获取到拍照的图片数据后回调PictureCallback,PictureCallback可以对相片进行保存或传入网络
                mCamera.takePicture(null, null, new MyPictureCallback());
            }
        }
    
        public void change(View v) {
            //切换前后摄像头
            int cameraCount = 0;
            Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
            cameraCount = Camera.getNumberOfCameras();//得到摄像头的个数
    
            for (int i = 0; i < cameraCount; i++) {
                Camera.getCameraInfo(i, cameraInfo);//得到每一个摄像头的信息
                if (cameraPosition == 1) {
                    //现在是后置,变更为前置
                    if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {//代表摄像头的方位,CAMERA_FACING_FRONT前置      CAMERA_FACING_BACK后置
                        mCamera.stopPreview();//停掉原来摄像头的预览
                        mCamera.release();//释放资源
                        mCamera = null;//取消原来摄像头
                        mCamera = Camera.open(i);//打开当前选中的摄像头
                        try {
                            mCamera.setPreviewDisplay(mHolder);//通过surfaceview显示取景画面
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                        mCamera.startPreview();//开始预览
                        cameraPosition = 0;
                        break;
                    }
                } else {
                    //现在是前置, 变更为后置
                    if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {//代表摄像头的方位,CAMERA_FACING_FRONT前置      CAMERA_FACING_BACK后置
                        mCamera.stopPreview();//停掉原来摄像头的预览
                        mCamera.release();//释放资源
                        mCamera = null;//取消原来摄像头
                        mCamera = Camera.open(i);//打开当前选中的摄像头
                        try {
                            mCamera.setPreviewDisplay(mHolder);//通过surfaceview显示取景画面
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        mCamera.startPreview();//开始预览
                        cameraPosition = 1;
                        break;
                    }
                }
    
            }
        }
    
        /**
         * 图片被点击触发的时间
         *
         * @param v
         */
        public void imageClick(View v) {
            if (bundle == null) {
                Toast.makeText(getApplicationContext(), "没有数据", Toast.LENGTH_SHORT).show();
            } else {
                Intent intent = new Intent(this, PreviewImageActivity.class);
                intent.putExtras(bundle);
                startActivity(intent);
            }
        }
    
        private final class MyPictureCallback implements Camera.PictureCallback {
    
            @Override
            public void onPictureTaken(byte[] data, Camera camera) {
                try {
                    bundle = new Bundle();
                    bundle.putByteArray("bytes", data); //将图片字节数据保存在bundle当中,实现数据交换
                    saveToSDCard(data); // 保存图片到sd卡中
                    Toast.makeText(getApplicationContext(), "success", Toast.LENGTH_SHORT).show();
    //                camera.startPreview(); // 拍完照后,重新开始预览
    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
        public void saveToSDCard(byte[] data) throws IOException {
            Log.d(TAG, "saveToSDCard");
            Date date = new Date();
            SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); // 格式化时间
            String filename = format.format(date) + ".jpg";
            File fileFolder = new File(Environment.getExternalStorageDirectory() + "/ansen/");// Environment.getRootDirectory()
            if (!fileFolder.exists()) {
                fileFolder.mkdir();
            }
            File jpgFile = new File(fileFolder, filename);
            FileOutputStream outputStream = new FileOutputStream(jpgFile); // 文件输出流
            outputStream.write(data);
            outputStream.close();
            mCamera.startPreview(); // 拍完照后,重新开始预览
            if (false) {
                Bitmap b = byteToBitmap(data);
                // 获取手机屏幕的宽高
                WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
                int windowWidth = windowManager.getDefaultDisplay().getWidth();
                int windowHight = windowManager.getDefaultDisplay().getHeight();
                Bitmap bitmap = Bitmap.createBitmap(b, 0, 0, windowWidth, windowHight);
                // 图片压缩
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
                outputStream.flush();
    
            }
        }
    
        /**
         * 把图片byte流转换成bitmap
         */
        private Bitmap byteToBitmap(byte[] data) {
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            Bitmap b = BitmapFactory.decodeByteArray(data, 0, data.length, options);
            int i = 0;
            while (true) {
                if ((options.outWidth >> i <= 1000)
                        && (options.outHeight >> i <= 1000)) {
                    options.inSampleSize = (int) Math.pow(2.0D, i);
                    options.inJustDecodeBounds = false;
                    b = BitmapFactory.decodeByteArray(data, 0, data.length, options);
                    break;
                }
                i += 1;
            }
            return b;
        }
    
        /**
         * 显示surfaceView 数据的接口
         */
        private class SurfaceCallback implements SurfaceHolder.Callback {
    
            @Override
            public void surfaceChanged(SurfaceHolder holder, int format, int width,
                                       int height) {
                Log.d(TAG, "surfaceChanged");
                mParameters = mCamera.getParameters(); // 获取各项参数
                mParameters.setPictureFormat(PixelFormat.JPEG); // 设置图片格式
                mParameters.setPreviewSize(width, height); // 设置预览大小
                mParameters.setPreviewFrameRate(5);  //设置每秒显示4帧
                mParameters.setPictureSize(width, height); // 设置保存的图片尺寸
                mParameters.setJpegQuality(80); // 设置照片质量
            }
    
            @Override
            public void surfaceCreated(SurfaceHolder holder) {
                Log.d(TAG, "surfaceCreated");
                mHolder = holder;// SurfaceHolder是系统提供用来设置surfaceView的对象
                try {
                    mCamera = Camera.open(); // 打开摄像头
                    mCamera.setPreviewDisplay(holder); //通过surfaceview显示取景画面
                    mCamera.setDisplayOrientation(getPreviewDegree(MainActivity.this));// 设置相机的方向
                    mCamera.startPreview(); // 开始预览
                } catch (Exception e) {
                    e.printStackTrace();
                    Log.e(TAG, "surfaceCreated >>  Exception: " + e.getMessage());
                }
    
            }
    
            @Override
            public void surfaceDestroyed(SurfaceHolder holder) {
                Log.d(TAG, "surfaceDestroyed");
                if (mCamera != null) {
                    mCamera.release(); // 释放照相机
                    mCamera = null;
                }
            }
        }
    
        /**
         * 点击手机屏幕是,显示两个按钮
         */
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    mRelativeLayout.setVisibility(ViewGroup.VISIBLE); // 设置视图可见
                    break;
            }
            return true;
        }
    
    
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            switch (keyCode) {
                case KeyEvent.KEYCODE_CAMERA:
                    if (mCamera != null && event.getRepeatCount() == 0) {
                        // 获取到拍照的图片数据后回调PictureCallback,PictureCallback可以对相片进行保存或传入网络
                        mCamera.takePicture(null, null, new MyPictureCallback());
                    }
            }
            return super.onKeyDown(keyCode, event);
        }
    
        // 用于根据手机方向获得相机预览画面旋转的角度
        public static int getPreviewDegree(Activity activity) {
            int degree = 0;
            // 获得手机的方向
            int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
            Log.d(TAG, "rotation : " + rotation);
            // 根据手机的方向计算相机预览画面应该选择的角度
            switch (rotation) {
                case Surface.ROTATION_0:
                    degree = 90;
                    break;
                case Surface.ROTATION_90:
                    degree = 0;
                    break;
                case Surface.ROTATION_180:
                    degree = 270;
                    break;
                case Surface.ROTATION_270:
                    degree = 180;
                    break;
            }
            return degree;
        }
    }


    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.tomorrow_p.camera_p.MainActivity">
    
        <SurfaceView
            android:id="@+id/surfaceView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
        <LinearLayout
            android:id="@+id/relativeLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:visibility="gone">
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="change"
                android:text="切换" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="takePhoto"
                android:text="拍照" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="imageClick"
                android:text="预览" />
    
        </LinearLayout>
    </FrameLayout>
    

    package com.tomorrow_p.camera_p;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Matrix;
    import android.os.Bundle;
    import android.widget.ImageView;
    
    public class PreviewImageActivity extends Activity {
        private ImageView ivPic = null; // 显示图片控件
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.preview_image);
            ivPic = (ImageView) findViewById(R.id.imageView);
            setImageBitmap(getImageFormBundle());
        }
    
        public void setImageBitmap(byte[] bytes) {
            Bitmap cameraBitmap = byte2Bitmap();
            // 根据拍摄的方向旋转图像(纵向拍摄时要需要将图像选择90度)
            Matrix matrix = new Matrix();
            matrix.setRotate(MainActivity.getPreviewDegree(this));
            cameraBitmap = Bitmap
                    .createBitmap(cameraBitmap, 0, 0, cameraBitmap.getWidth(),
                            cameraBitmap.getHeight(), matrix, true);
            ivPic.setImageBitmap(cameraBitmap);
        }
    
        public byte[] getImageFormBundle() {
            Intent intent = getIntent();
            Bundle data = intent.getExtras();
            byte[] bytes = data.getByteArray("bytes");
            return bytes;
        }
    
        /**
         * 将字节数组的图形数据转换为Bitmap
         */
        private Bitmap byte2Bitmap() {
            byte[] data = getImageFormBundle();
            // 将byte数组转换成Bitmap对象
            Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
            return bitmap;
        }
    }




    展开全文
  • 我们常见的上传文件或者图片 是使用的input <form> <input type="file" name="pic" id="pic" />...而苹果机 ios系统的 会直接出现选择 相机拍照还是照片图库。 所以解决安卓调取照相机的问题,...

    我们常见的上传文件或者图片 是使用的input

    <form>
      <input type="file" name="pic" id="pic"  />
    </form>
    

    此时一个问题出现:
    如果是上传照片图片,安卓机有一个问题,只能选取照片,不能去调取相机进行拍照。
    而苹果机 ios系统的 会直接出现选择 相机拍照还是照片图库。
    在这里插入图片描述
    所以解决安卓调取照相机的问题,次是只需加一个属性 accept 是规定能够通过文件上传进行提交的文件类型
    accept 属性只能与 配合使用

    //本例中的输入字段可以接受 GIF 和 JPEG 两种图像:
        <form>
            <input type="file" name="pic" id="pic" accept="image/gif, image/jpeg" />
        </form>
      //如果不限制图像的格式,可以写为:accept="image/*"。   
       <form>
      		<input type="file" name="" accept="image/*" >
       </form>
    

    加上accept属性后,安卓机就可以调取照相机拍照功能了,快试试吧

    展开全文
  • Android如何调用系统现有的照相机拍照与摄像

    千次下载 热门讨论 2013-11-25 23:20:31
    Android如何调用系统现有的照相机拍照与摄像,详细参见博客:http://www.cnblogs.com/plokmju/p/Android_SystemCamera.html
  • 使用intent调用系统照相机拍照

    千次阅读 2016-09-15 09:05:06
    1.使用intent调用系统照相机拍照 static final int REQUEST_IMAGE_CAPTURE = 1; private void dispatchTakePictureIntent() { Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if ...
  • [UE4][Blueprint]虚幻4实现照相机拍照功能

    千次阅读 热门讨论 2020-03-22 20:44:04
    [UE4][Blueprint]虚幻4实现照相机拍照功能 创建渲染目标,绘制渲染目标,创建动态材质实例,设置实例图片参数为渲染目标,setbrush
  • 自定义照相机拍照界面

    千次阅读 2013-09-05 15:45:31
    原先一直以为自定义拍照界面很难,近日仔细看了下,其实也不难,写的个demo,给有需要的人  源码下载地址:https://github.com/iptv/ZBImagePickerController
  • android自定义相机拍照

    千次阅读 2017-10-17 09:32:29
    android自定义相机拍照
  • 一丶 调用原生硬件Api实现照相机拍照和相册选择 导入第三方库:image_picker 拍照 _takePhoto() async { var image = await ImagePicker.pickImage(source: ImageSource.camera); setState(() { _imgPath = image; }...
  • 主要介绍了H5调用相机拍照并压缩图片的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 兼容android 11 唤起系统相机拍照并显示

    千次阅读 热门讨论 2021-02-02 14:31:11
    兼容android 11 唤起系统相机拍照并显示 本文是记录兼容android 11的唤起系统相机拍照并正常显示,此处我默认已经获取到相机和读写的权限。 打开相机 /** * 保存 photoUri */ private Uri photoUri; /** * ...
  • 在程序中我使用手机相机拍一张照片,然后把这张图片保存在手机图库里面。然后我想获取图片的路径,再保存到数据库中。如何实现呢? public void onClick(View v){ switch(v.getId()) { case R.id....
  • Android 自定义相机拍照截图仿照nice添加标签

    千次下载 热门讨论 2014-11-26 11:38:58
    告别系统相机界面,自定义相机拍照,拍照过程中自动截图,并为截图添加标签,仿照nice的添加标签效果,shit
  • 前端调用手机相机拍照

    万次阅读 2016-12-07 12:52:46
    前端调用手机相机拍照 实现方式常见有两种: 一种是通过video控件,通过捕获video的流,截取video中的图像实现拍照, 还有一种是通过input[file]控件调用移动端的摄像头,实现拍照。 两种方法各有利弊,第一种可以...
  • android 调用系统照相机进行拍照,并且保存到系统相册,调用系统相册的时候能看到。
  • Android 7.0调用相机拍照,返回后显示拍照照片

    万次阅读 多人点赞 2017-05-13 17:02:10
    Android 7.0调用相机拍照,返回后显示拍照照片,并显示到手机相册中
  • 控制相机拍照示例;控制相机拍照示例;控制相机拍照示例;控制相机拍照示例;控制相机拍照示例;控制相机拍照示例;控制相机拍照示例;控制相机拍照示例;控制相机拍照示例;控制相机拍照示例;控制相机拍照示例;知识点小结;...
  • android调用照相机拍照获取照片并…

    万次阅读 2014-06-23 13:17:54
    1.调用系统的照相机程序 Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);  startActivityForResult(intent,TAKE_PHOTO_WITH_DATA); 2.在onActivityResult中处理返回的data final Bitmap photo = data...
  • android使用相机拍照并指定照片存储位置
  • Android 调用系统相机拍照攻略(已适配Android N)  
  • Android中调用摄像头拍照非常简单,利用MediaStore....调用相机拍照,最终的照片会保存在该文件夹下 动态申请权限 解析图片Uri 添加权限 <uses-permission android:name="android.permission.CAMERA" /> <
  • Android 起调相机拍照剪裁内存优化

    千次阅读 2016-07-22 18:10:45
    本篇实现功能主要是通过app起调系统相机拍照剪裁后返回app内存优化 先说下遇到的问题:以前实现相机拍照由于图片过大几张以后很容易导致OOM, 这里说一下实现: 启动相机拍照有两种方法获取拍照后的图片数据: $1: ...
  • Android关闭自定义相机拍照声音

    千次阅读 2015-07-06 11:37:25
    Android关闭自定义相机拍照声音在自定义相机的代码中,调用 camera.takePicture(null,rawCallback,jpegCallback); 方法完成拍照时会发现无论系统的音量时震动、静音还是有声音都无法关闭自定义相机的拍照声音。 ...
  • 转载自:https://www.cnblogs.com/dongweiq/p/6478393.html需求:调用系统照相机进行拍照,并且保存到系统相册,调用系统相册的时候能看到系统相册的路径:String cameraPath=Environment....+ File.separator + ...
  • 摘要:Android调用系统相机拍照,并且模仿实现水印相机简单功能 话说最近比较流行水印相机,动不动空间就会用水印相机拍水印照片,本人也比较喜欢,正好今天下午有点时间,就稍微模拟的实现了一下简单功能,不喜勿喷...
  • Android--调用系统照相机拍照与摄像

    千次阅读 2014-05-16 09:21:55
    一般而言,在需要用到摄像头拍照或摄像的时候,均会直接调用系统现有的相机应用,去进行拍照或摄像,我们只取它拍摄的结果进行处理,这样避免了不同设备的摄像头的一些细节问题。本篇博客将介绍在Android应用中,...
  • Android webview调相机拍照,选择相册,将图片显示到网页上
  • 安卓调用相机拍照并返回预览及相关类型换一、demo预览二、上代码三、顺便写几个转换工具吧 一、demo预览 先简单写一个demo,效果如图,点击拍照以后返回图片覆盖在指定位置。 点击拍照以后直接调用相机 拍照...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,655
精华内容 30,262
关键字:

相机拍照