搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
空白诗007
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
李智慧 - 架构师训练营 第五周_public class apptest extends testcase
2
AndroidStudio 打包apk时发生 compileReleaseJavaWithJavac 报错
3
Flutter 0-1常用三方库清单_flutter常用第三方库
4
【uniapp】HBuilderx中uniapp项目运行到微信小程序报错Error: Fail to open IDE_[微信小程序开发者工具] [error] error: fail to open ide
5
深度学习算法一:CNN_cnn算法
6
Flutter入门教程:从零构建电商应用(一)_flutter从0到1构建应用
7
[ZT]亲历微软_微软l1
8
SpringCloud(Finchley.RC2)基于springboot 2.0.2搭建Eureka(一)_finchley.rc2 是几点几
9
省时又方便:三款常见报表模板,一键套用,助您事半功倍_好用的报表框架
10
【2024蓝桥杯/C++/B组/传送阵】
当前位置:
article
> 正文
调用 android 自身裁剪功能_android 调用系统视频裁剪
作者:空白诗007 | 2024-08-12 13:47:38
赞
踩
android 调用系统视频裁剪
在Android操作系统下可通过编程实现对视频图像进行抓拍并对图片的裁剪与上传功能。简单的实现方法采用Android 自带有关于照片的自由裁剪,非常适用及视频抓拍的接口功能。
一、视频抓拍
1、基本类
Android 框架通过 Camera API 或者 camer Intent 的方式,支持 捕捉图像和视频 。相关的大类主要有以下几个:
(1) Camera 摄像时候必须调用到的类;
(2)SurfaceView 提供摄像头预览。
(3)MediaRecorder 录像时候用到的类;
(4)Intent 如果不通过 Camera 对象来操控摄像头,那么用两个intent 动作 MediaStore.ACTION_IMAGE_CAPTURE or MediaStore.ACTION_VIDEO_CAPTURE 也能够实现摄影和录像。
o MediaStore.ACTION_IMAGE_CAPTURE —— 向内置摄像头程序请求图像的意图活动类型。
o MediaStore.ACTION_VIDEO_CAPTURE —— 向内置摄像头程序请求视频的意图活动类型。
2、 Manifest 声明
在使用Camera API前,必须做出使用 Camera 硬件的声明。主要有下面 点:
(1) Camera 允许:(注意,如果是通过intent 意图来操控的,则不需要下面声明)
<uses-permission android:name="android.permission.CAMERA" />
(2)Camera 特征,比如说名字
<uses-feature android:name="android.hardware.camera" />
(3)如果你要在SD卡中保存照片和视频,那么就得开启SD卡权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
(4)录音权限
<uses-permission android:name="android.permission.RECORD_AUDIO" />
(5)如果希望在照片中插入GPS当地信息,还得开启GPS
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
3、使用方法
使用摄像头的方法有两种:
一种是编写代码比较少的,快速使用摄像头的意图Intent 方法;
另外一种就是 自动外观的摄像头用户界面,要求编写更多的代码。
4、使用Intent 快速应用摄像头:使用默认配置拍摄并保存
二、图片自由裁剪
关键代码如下:
public void imageCut(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
//开启裁剪功能
intent.putExtra("crop", "true");
//设定宽高的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
//设定裁剪图片宽高
intent.putExtra("outputX", 100);
intent.putExtra("outputY", 100);
//要求返回数据
intent.putExtra("return-data", true);
startActivityForResult(intent, 100);
}
返回数据后直接在onActivityResult 里对返回的图片数据进行显示就行了,这里由于剪切后的图片较小,个人觉得应该不用考虑OOM的问题,问题是,在调用自带的裁剪功能的时候,由于没看源码,所以不知道在调整裁剪框的时候,显示的那副图片有没有进行压缩,如果没有进行压缩,那么当图片很大的时候,加载起来就很容易出现OOM了,明显对此由于是调用官方的API,我没有方法去解决它。唯一的办法就是不用它,而是自己去写一个,就可以避免这个问题。利用如下的代码进行压缩,很好地避免OOM问题。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/空白诗007/article/detail/970079
推荐阅读
article
tauri
2.0
bate
版本支持
移动
端开发了,
ios
和
android
开发有福了_
tauri
andr...
Tauri 是一个开源框架,用于构建轻量级、高性能的桌面应用程序。它是使用 Web 技术(如 HTML、CSS 和 Ja...
赞
踩
article
Android
仪器化
单元测试
(
instrumented
unit
tests
)
Android
x ...
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数...
赞
踩
article
Android
动态
权限
申请
|
2
次
不
允许
权限
导致
申请
权限
不
再
弹框
_shouldshowreque...
Android
动态
权限
申请
|
2
次
不
允许
权限
导致
申请
权限
不
再
弹框
_shouldshowrequestpermissi...
赞
踩
article
android
缓存
文件
的
工具
类
,总结
的
一些
android
公共库,包含
缓存
(
图片
缓存
、预取
缓存
)、....
总结
的
一些
android
公共库,包含
缓存
(
图片
缓存
、预取
缓存
)、公共View(下拉及底部加载更多ListView、底部加...
赞
踩
article
Android
studio
使用外部
模拟器
(
mumu
模拟器
)
----
20
1
9-2020-
1
第五周
_
m...
Android
Studio自带的安卓
模拟器
用起来太卡了,感觉傻乎乎的。所以可以尝试一下用市面上的安卓
模拟器
来替代,以提...
赞
踩
article
【
Android
Git
】Mac配置支持
Git
lab、
Git
ee和阿里云效多
平台
...
在开发过程中,会遇到多
平台
项目管理问题,需要进行配置支持,常用的
平台
有
Git
lab
Git
ee阿里云效等,本篇文章记录下使...
赞
踩
article
Android
10
.0
SystemUI
下拉
状态栏
固定展开
QsPanel
不收缩功能实现_andro...
在
10
.0的系统ROM产品定制化开发中,在systemUi的原生
下拉
状态栏
中,首次
下拉
展开quick
QsPanel
,第二...
赞
踩
article
Android
14
transtion
动画
流程_
ontransitionready
...
implements Transitions.TransitionHandler 的对象都会调用到startAnimat...
赞
踩
article
android
launcher
进入编辑模式
创建
文件夹
_
launcher
创建
文件夹
...
本文详细介绍了如何在Android应用中开启
launcher
的编辑模式,让用户能够方便地
创建
和管理
文件夹
。通过Java编...
赞
踩
article
【
问题
分析】WMS无焦点窗口的
ANR
问题
【Android 14】_
waiting
because
n...
Monkey跑出的 Launcher
ANR
,场景为在Launcher的Recents界面下一个Activity启动又快...
赞
踩
article
Splash
Screen 流程_
com
.
android
.wm.
shell
.startingsurf...
【代码】
Splash
Screen 流程。_
com
.
android
.wm.
shell
.
startingsurface
co...
赞
踩
article
Android
12
系统源码_
SystemUI
(三)车载
状态栏
CarStatusBar
的创建流程...
通过
Android
12
系统源码分析车载
状态栏
从启动到构建视图,再到将视图添加到Window的流程。
Android
12
系...
赞
踩
article
android
代码中
调用
shell
_
android
如何
调用
源码wm.
shell
里面
的
方法
...
1. 新建自己
的
shell
文件,或者中windows上传 例如: d://x.sh #! /system/bin/sh#...
赞
踩
article
Android
T
startingwindow
流程梳理...
文章详细介绍了
Android
系统在Activity启动时如何使用StartingWindow作为过渡,包括启动窗口的类型...
赞
踩
article
千里马带你学
framework
:
android
13 WM_
SHELL
_
STARTING
_WINDO...
这里是为啥阿,因为高版本StartingWindow已经移殖到了Systemui进程,让Systemui来负责窗口创建相...
赞
踩
article
【
Android
】
Gradle
project
sync
failed
.Basic function...
Gradle
project
sync
failed
的解决方法-CSDN博客
Android
常见问题之 android ...
赞
踩
article
Android
ContentProvider
支持跨
进程
数据共享
与"
互斥
、
同步
" 杂谈...
在开发中,假如,A、B
进程
有部分信息需要
同步
,这个时候怎么处理呢?设想这么一个场景,有个业务复杂的Activity非常占...
赞
踩
article
Android
ContentProvider
使用
_
android
如何只读方式打开content...
简要介绍了
Android
中
ContentProvider
的
使用
。_
android
如何只读方式打开content...
赞
踩
article
Android
Studio
汉化_
android
汉化包...
汉化包需要与
Android
Studio
版本对应。_
android
汉化包
android
汉化包 ...
赞
踩
article
android
studio
汉化_
android
studio
汉化...
转载:https://blog.csdn.net/pingfangx/article/details/78405006 ...
赞
踩
相关标签
ios
tauri
android
单元测试
androidx
permission
android 缓存文件的工具类
安卓开发
安卓模拟器
笔记
git
macos
gitlab
git 多平台
qspanel
systemui
下拉状态栏
固定展开qspanel
java
开发语言
android studio
Framework
Frameworks
Android
Java