# JCameraView(1.1.9)
## 使用方法
- Gradle依赖: compile 'cjt.library.wheel:camera :1.1.9'
- 引用源码 : clone源码后 引入lib -> camera
- 尝试运行 : 导入源码 运行cameraapplication这个model(!!!)
- 扫描二维码: apk比较旧
[![Download](https://api.bintray.com/packages/cjt/maven/cameraView/images/download.svg)](https://bintray.com//cjt/maven/cameraView/_latestVersion) [![API 14+](https://img.shields.io/badge/API-14%2B-green.svg)](https://github.com/CJT2325/CameraView)
这是一个模仿微信拍照的Android开源控件
- 点击拍照
- 10s的视频大概1.9M左右
- 长按录视频(视频长度可设置)
- 长按录视频的时候,手指上滑可以放大视频
- 录制完视频可以浏览并且重复播放
- 前后摄像头的切换
- 可以设置小视频保存路径
## 示例截图
![image](https://github.com/CJT2325/CameraView/blob/master/assets/screenshot_0.jpg)
![image](https://github.com/CJT2325/CameraView/blob/master/assets/screenshot_1.jpg)
![image](https://github.com/CJT2325/CameraView/blob/master/assets/screenshot_2.jpg)
## GIF图(播放速度有点慢,求解)
![image](https://github.com/CJT2325/CameraView/blob/master/assets/video.gif)
## 使用步骤(Android Studio)
**添加下列代码到 module gradle**
> 最新版本(1.1.9)更新内容:
```gradle
compile 'cjt.library.wheel:camera:1.1.9'
//添加闪关灯,自定义左右按钮图标资源
```
**如果获取依赖失败则添加下列代码到 project gradle**
```gradle
allprojects {
repositories {
jcenter()
maven {
url 'https://dl.bintray.com/cjt/maven'
}
}
}
```
### 旧版本
```gradle
compile 'cjt.library.wheel:camera:1.1.6'
//修复BUG
```
```gradle
compile 'cjt.library.wheel:camera:1.1.3'
//fix bug
```
```gradle
compile 'cjt.library.wheel:camera:1.1.1'
//fix bug
compile 'cjt.library.wheel:camera:1.0.9'
//fix bug
compile 'cjt.library.wheel:camera:1.0.5'
//浏览界面能使用两根手指进行缩放
//切换摄像头的按钮会根据手持手机方向进行旋转
//修复内存泄露
compile 'cjt.library.wheel:camera:1.0.4'
//换回VideoView
//摄像上滑放大
compile 'cjt.library.wheel:camera:1.0.2'
//TextureView替换VideoView
//根据手机拍照方向旋转图片(仅后置摄像头)
compile 'cjt.library.wheel:camera:1.0.0'
//代码重构
//修复频繁切换摄像头崩溃的问题
//修复获取不到supportedVideoSizes的问题
//可以设置最长录像时间
//修复按钮错乱BUG
compile 'cjt.library.wheel:camera:0.1.9' //修复BUG
compile 'cjt.library.wheel:camera:0.1.7' //修复无法获取最佳分辨率导致的StackOverFlowError
compile 'cjt.library.wheel:camera:0.1.6' //修复部分机型切换前置摄像头崩溃问题和添加动态权限申请
compile 'cjt.library.wheel:camera:0.1.2' //修复部分机型不支持缩放导致崩溃
compile 'cjt.library.wheel:camera:0.1.1' //修复切换前置摄像头崩溃BUG
compile 'cjt.library.wheel:camera:0.1.0' //修复BUG
compile 'cjt.library.wheel:camera:0.0.9' //添加保持屏幕常亮唤醒状态
<uses-permission android:name="android.permission.WAKE_LOCK"/> //需新增权限
compile 'cjt.library.wheel:camera:0.0.8' //添加手动对焦,对焦提示器,修复切换到前置摄像头崩溃的BUG
compile 'cjt.library.wheel:camera:0.0.7' //修复了长按录视频崩溃的BUG和兼容到Android4.0
compile 'cjt.library.wheel:camera:0.0.3'
```
## 布局文件中添加
```xml
//1.0.0+
<com.cjt2325.cameralibrary.JCameraView
android:id="@+id/jcameraview"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:duration_max="10000"
app:iconMargin="20dp"
app:iconSize="30dp"
app:iconSrc="@drawable/ic_camera_enhance_black_24dp"/>
```
### (1.0.0+)
属性 | 属性说明
---|---
iconSize | 右上角切换摄像头按钮的大小
iconMargin | 右上角切换摄像头按钮到上、右边距
iconSrc | 右上角切换摄像头按钮图片
iconLeft | 左边按钮图片资源(1.1.9+)
iconRight | 右边按钮图片资源(1.1.9+)
duration_max | 设置最长录像时间(毫秒)
### AndroidManifest.xml中添加权限
```xml
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
```
### Activity全屏设置
```java
if (Build.VERSION.SDK_INT >= 19) {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
} else {
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(option);
}
```
### 初始化JCameraView控件
```java
//1.1.1
jCameraView = (JCameraView) findViewById(R.id.jcameraview);
//设置视频保存路径
jCameraView.setSaveVideoPath(Environment.getExternalStorageDirectory().getPath() + File.separator + "JCamera");
//设置只能录像或只能拍照或两种都可以(默认两种都可以)
jCameraView.setFeatures(JCameraView.BUTTON_STATE_BOTH);
//设置视频质量
jCameraView.setMediaQuality(JCameraView.MEDIA_QUALITY_MIDDLE);
//JCameraView监听
jCameraView.setErrorLisenter(new ErrorLisenter() {
@Override
public void onError() {
//打开Camera失败回调
Log.i("CJT", "open camera error");
}
@Override
public void AudioPermissionError() {
//没有录取权限回调
Log.i("CJT", "AudioPermissionError");
}
});
jCameraView.setJCameraLisenter(new JCameraLisenter() {
@Override
public void captureSuccess(Bitmap bitmap) {
//获取图片bitmap
Log.i("JCameraView", "bitmap = " + bitmap.getWidth());
}
@Override
public void recordSuccess(String url,Bitmap firstFrame) {
//获取视频路径
Log.i("CJT", "url = " + url);
}
//@Override
//public void quit() {
// (1.1.9+后用左边按钮的点击事件替换)
//}
});
//左边按钮点击事件
jCameraView.setLeftClickListener(new ClickListener() {
@Override
public void onClick() {
CameraActivity.this.finish();
}
});
//右边按钮点击事件
jCameraView.setRightClickListener(new ClickListener() {
@Override
Toast.makeText(CameraActivity.this,"Right",Toast.LENGTH_SHORT).show();
}
});
```
### JCameraView生命周期
```java
@Override
protected void onResume() {
super.onResume();
mJCameraView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mJCameraView.onPause();
}
```
### APK Demo
扫码下载
![image](https://github.com/CJT2325/CameraView/blob/master/assets/QRcode.png)
二维码显示不出请点击 [下载Demo](http://fir.im/8xnw)
### LICENSE
Copyright 2017 CJT2325
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
没有合适的资源?快使用搜索试试~ 我知道了~
仿微信拍照Android控件(轻触拍照,长按摄像)
共142个文件
java:45个
xml:44个
kt:15个
4星 · 超过85%的资源 需积分: 45 110 下载量 200 浏览量
2017-12-22
15:19:28
上传
评论 2
收藏 10.63MB ZIP 举报
温馨提示
这是一个模仿微信拍照的Android开源控件 点击拍照 10s的视频大概1.9M左右 长按录视频(视频长度可设置) 长按录视频的时候,手指上滑可以放大视频 录制完视频可以浏览并且重复播放 前后摄像头的切换 可以设置小视频保存路径
资源推荐
资源详情
资源评论
收起资源包目录
仿微信拍照Android控件(轻触拍照,长按摄像) (142个子文件)
gradlew.bat 2KB
video.gif 10.15MB
.gitignore 97B
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
build.gradle 3KB
build.gradle 1KB
build.gradle 959B
build.gradle 705B
build.gradle 510B
settings.gradle 48B
gradlew 5KB
gradle-wrapper.jar 52KB
CameraInterface.java 27KB
JCameraView.java 21KB
CaptureButtom.java 20KB
JCameraView.java 15KB
CaptureButton.java 13KB
CaptureLayout.java 13KB
MainActivity.java 5KB
CameraParamUtil.java 5KB
MainActivity.java 5KB
CameraActivity.java 5KB
TypeButton.java 4KB
CheckPermission.java 3KB
PreviewState.java 3KB
CameraMachine.java 3KB
FoucsView.java 2KB
FileUtil.java 2KB
BorrowPictureState.java 2KB
BorrowVideoState.java 2KB
FileUtil.java 2KB
ReturnButton.java 2KB
AngleUtil.java 1KB
DeviceUtil.java 1KB
LogUtil.java 1KB
CameraApplication.java 1024B
ScreenUtils.java 949B
AudioUtil.java 909B
State.java 866B
AudioUtil.java 781B
ExampleInstrumentedTest.java 769B
ExampleInstrumentedTest.java 758B
CameraView.java 594B
ImageUtil.java 530B
ExampleUnitTest.java 408B
ExampleUnitTest.java 405B
JCameraListener.java 395B
ApplicationTest.java 356B
ApplicationTest.java 353B
ExampleUnitTest.java 318B
ExampleUnitTest.java 315B
ErrorListener.java 314B
CaptureListener.java 308B
TypeListener.java 301B
ReturnListener.java 284B
ResultListener.java 283B
ClickListener.java 282B
65A0.tmp.jpg 194KB
screenshot_1.jpg 29KB
screenshot_0.jpg 27KB
screenshot_2.jpg 27KB
CameraNewInterface.kt 16KB
CaptureButton.kt 9KB
CaptureLayout.kt 6KB
JCameraView.kt 5KB
TypeButton.kt 3KB
AutoFitTextureView.kt 1KB
QuitButton.kt 1KB
ImageSaver.kt 1KB
ScreenUtil.kt 853B
CompareSizesByArea.kt 602B
CaptureListener.kt 410B
JCameraListener.kt 408B
JLog.kt 304B
TypeListener.kt 292B
QuitListener.kt 272B
LICENSE 11KB
README.md 8KB
ic_launcher.png 10KB
ic_launcher.png 10KB
ic_launcher.png 8KB
ic_launcher.png 8KB
ic_launcher.png 5KB
ic_launcher.png 5KB
ic_launcher.png 3KB
ic_launcher.png 3KB
ic_launcher.png 2KB
ic_launcher.png 2KB
QRcode.png 1KB
proguard-rules.pro 679B
proguard-rules.pro 679B
proguard-rules.pro 658B
proguard-rules.pro 658B
gradle.properties 855B
gradle-wrapper.properties 298B
misc.xml 2KB
camera_view.xml 2KB
共 142 条
- 1
- 2
资源评论
- silencezhujianhua2021-01-11下载了,不知道有没有用。
- scnull2018-02-01加油 加油 加油
- Soleil07072019-07-27还行 还 行
- oceanfhy2018-02-22不错 不错 不错
修行者对666
- 粉丝: 1068
- 资源: 78
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功