Android仿微信单击拍照长按录像功能实例代码

此文章是看郭神公众号发的一篇,仅作学习。

在modlue gradle中添加

compile 'cjt.library.wheel:camera:0.0.7'

在project gradle中添加

compile 'cjt.library.wheel:camera:0.0.7'

添加的地方是

allprojects {
  repositories {
    jcenter()
    /*在此处添加*/
  }
}

使用起来很方便,只需在xml布局中

<com.cjt2325.cameralibrary.JCameraView
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/camera"
  app:iconMargin="0dp"
  app:iconWidth="0dp"
  app:iconSrc="@drawable/ic_camera_enhance_black_24dp"/>

特别注意:

app:iconMargin="0dp"
  app:iconWidth="0dp"
app:iconSrc="@drawable/ic_camera_enhance_black_24dp"

这三个属性是页面切换前后摄像头的,不过里面有bug,当时在网上找了找,发现了一个大坑,在源码394行里有一句代码是

mediaRecorder.setVideoSize(width, height);

因为前置摄像头和后置摄像头的像素不同,因此此方法中的width和height不能为定值,有需要的可以自己研究下,所以暂时让这个按钮长宽都是0dp,也就不让显示。

然后再看看Activity中的写法。

View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
camera = (JCameraView) findViewById(R.id.camera);
camera.setSaveVideoPath(Environment.getExternalStorageDirectory().getPath());
camera.setCameraViewListener(new JCameraView.CameraViewListener() {
  @Override
  public void quit() {
    Log.e("MainActivity:","您点击了关闭按钮");
    MainActivity.this.finish();
  }
  @Override
  public void captureSuccess(Bitmap bitmap) {
    Log.e("MainActivity:","拍照成功");
  }
  @Override
  public void recordSuccess(String url) {
    Log.e("MainActivity:","录像成功");
  }
});

写到这里运行代码,发现启动后摄像头默认没有启动,因为还差一些东西。

@Override
protected void onResume() {
  super.onResume();
  camera.onResume();
}
@Override
protected void onPause() {
  super.onPause();
  camera.onPause();
}

至此就ok了。

------------------------------------------------------------------------------------------------------------------

项目地址

https://github.com/CJT2325/CameraView

以上所述是小编给大家介绍的Android仿微信单击拍照长按录像功能实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Android 再按一次返回键退出程序实现思路

    用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dialog中的按钮.个人觉得"再按一次返回键退出程序"是best practice,实现也很简单,直接上代码: 复制代码 代码如下: private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEve

  • Android实现长按图片保存至相册功能

    前言:前面写了一篇reactnative的学习笔记,说reactnative的Android框架中有很多福利,确实是的,也说到了我们app中的一个把图片保存到相册的功能,好吧,还是准备写一篇博客,就当笔记了- 先上几张app的图片: 一进app就是一个进度条加载图片(我待会也会说一下进度条view跟怎么监听图片加载过程): 图片加载完毕后: 长按图片进入相册可以看到我们保存的图片: 监听图片加载的loaddingview源码(不是很难,我就直接贴代码了): package com.leo.cam

  • 安卓(Android) 监听按键长按事件

    1,key -- 实体按键 现在手机物理按键越来越少 常见的有 KEYCODE_VOLUME_DOWN/UP KEYCODE_POWER KEYCODE_BACK KEYCODE_HOME KEYCODE_MENU 在一个activity 重载父类 的下面这三个方法来处理按键事件 public boolean onKeyDown(int keyCode, KeyEvent event): public boolean onKeyUp(int keyCode, KeyEvent event): p

  • Android开发实现长按返回键弹出关机框功能

    本文实例讲述了Android开发实现长按返回键弹出关机框功能.分享给大家供大家参考,具体如下: 今天刚好在PhoneWindowManager.java下看,当看到长按Home键的功能时,突然想到是不是可以长按back键来弹出关机框. 有想法就试试呗.当然想法是根据长按home键来的,那么我们应该可以模仿长按Home键来做.经过一番实验,貌似好像可以,拿出来给大家分享一下!!! 先找到PhoneWindowManager.java文件,在framework/base/policy/src/com

  • Android仿QQ长按删除弹出框功能示例

    废话不说,先看一下效果图,如果大家感觉不错,请参考实现代码: 对于列表来说,如果想操作某个列表项,一般会采用长按弹出菜单的形式,默认的上下文菜单比较难看,而QQ的上下文菜单就人性化多了,整个菜单给用户一种气泡弹出的感觉,而且会显示在手指按下的位置,而技术实现我之前是使用popupWindow和RecyclerView实现的,上面一个RecyclerView,下面一个小箭头ImageView,但后来发现没有必要,而且可定制化也不高,还是使用多个TextView更好一点. 我封装了一下,只需要一个P

  • Android返回键功能的实现方法

    本文实例讲述了Android返回键功能的实现方法.分享给大家供大家参考.具体如下: 在开发android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就能关闭程序,其实大多情况下并没有关闭改应用 我们可以这样做,当用户点击自定义的退出按钮或返回键时(需要捕获动作),我们在onDestroy()里强制退出应用,或直接杀死进程,具体操作代码如下: public boolean onKeyDown(int keyCode, KeyEvent event)

  • Android双击返回键退出程序的实现方法

    本文实例讲述了Android双击返回键退出程序的实现方法,是Android程序开发中一个非常实用的功能,分享给大家供大家参考之用.具体方法如下: 一.实现思路: 用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定时器是每次用户按下返回键才去创建. 二.功能代码: /** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode,

  • Android 自定义按钮点击事件和长按事件对比

     Android 自定义按钮点击事件和长按事件对比 一个按钮同时实现点击和长按事件,有时候会有冲突,我们针对这一现象来自定义按钮来区分点击和长按事件 1.xml中 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="mat

  • Android实现点击两次返回键退出

    在做安卓应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次返回键的时候提示用户是否退出应用程序. 第一种实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法. 在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在Handler中将此值还原成false.如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时

  • Android中让按钮拥有返回键功能的方法及重写返回键功能

    让按钮拥有返回键的功能很简单,在点击事件加上finish();就OK了. 如: 复制代码 代码如下: public void onClick(View v){ finish(); } finish() 仅仅是把activity从当前的状态退出,但是资源并没有给清理. 其实android的机制决定了用户无法完全退出application,即使用System.exit(). android自己决定何时该从内存中释放程序,当系统没有可用内存时,就会按照一定的优先级来销毁应用程序. android手机操

  • Android实现长按back键退出应用程序的方法

    本文实例讲述了Android实现长按back键退出应用程序的方法.分享给大家供大家参考.具体分析如下: 最近在做一个Android上的应用,碰到一个问题就是如何实现长按back键退出应用程序.在网上查找了很多资料,发现几乎没有这样的实现,大部分在处理时是双击back键来退出应用程序.参考了一下双击back键退出应用程序的代码,网上主流的一种方法是下面这种方法,实现起来比较简单: @Override public boolean onKeyDown(int keyCode, KeyEvent ev

随机推荐