当前位置: 移动技术网 > IT编程>移动开发>Android > Android 实现调用系统照相机拍照和录像的功能

Android 实现调用系统照相机拍照和录像的功能

2019年07月24日  | 移动技术网IT编程  | 我要评论

张帝简介,梦的翅膀受了伤歌词,陈林蔚

本文实现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);
    
  }

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网