android相机固定方向,如何正确设置Android相机方向?
我想根据Android中的设备方向设置相机方向,但似乎没有工作。我试图旋转Surface以及相机参数,但在纵向模式下的相机预览总是颠倒。我需要顺时针旋转90度才能正确。这里是我现在使用的代码只在横向模式下工作的代码。
SurfaceHolder.Callback surfaceCallback = new SurfaceHolder.Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
camera = null;
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
initCamera();
}
private Size getOptimalPreviewSize(List sizes, int w, int h) {
final double ASPECT_TOLERANCE = 0.2;
double targetRatio = (double) w / h;
if (sizes == null)
return null;
Size optimalSize = null;
double minDiff = Double.MAX_VALUE;
int targetHeight = h;
// Try to find an size match aspect ratio and size
for (Size size : sizes) {
Log.d(TAG, "Checking size " + size.width + "w " + size.height
+ "h");
double ratio = (double) size.width / size.height;
if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE)
continue;
if (Math.abs(size.height - targetHeight) < minDiff) {
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
// Cannot find the one match the aspect ratio, ignore the
// requirement
if (optimalSize == null) {
minDiff = Double.MAX_VALUE;
for (Size size : sizes) {
if (Math.abs(size.height - targetHeight) < minDiff) {
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
}
return optimalSize;
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Camera.Parameters parameters = camera.getParameters();
List sizes = parameters.getSupportedPreviewSizes();
Size optimalSize = getOptimalPreviewSize(sizes, width, height);
Log.d(TAG, "Surface size is " + width + "w " + height + "h");
Log.d(TAG, "Optimal size is " + optimalSize.width + "w " + optimalSize.height + "h");
parameters.setPreviewSize(optimalSize.width, optimalSize.height);
// parameters.setPreviewSize(width, height);
camera.setParameters(parameters);
camera.startPreview();
}
};
android相机固定方向,如何正确设置Android相机方向?相关推荐
- android 固定底部导航,如何设置android底部导航栏位置固定在android
请帮我设置底部导航栏位置固定在底部, ,因为我在输入editText字段时遇到问题,底部导航栏向上移动并覆盖其他领域如何设置android底部导航栏位置固定在android 代码: xmlns:and ...
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
在进行UI布局的时候,可能常常会用到 android:gravity 和 android:layout_Gravity 这两个属性. 关于这两个属性的差别,网上已经有许多人进行了说明,这边再简单说一 ...
- android app防止锁屏_设置Android系统永不锁屏永不休眠的方法
在进行Android系统开发的时候,有些特定的情况需要设置系统永不锁屏,永不休眠.本篇文章给大家介绍Android 永不锁屏,开机不锁屏,删除设置中休眠时间选项,需要的朋友一起学习吧. Android ...
- android:ellipsize = marquee 跑马灯,TextView设置android:ellipsize=marquee不滚动
今天发现android开发中有一个android:ellipsize=marquee,这个感觉像html中的marquee功能,可以实现滚动效果,于是测试了一下,结果不行呀,后来百度了一下解决办法,下 ...
- android gridview固定行数据,如何在Android gridview中为行设置不同的列
我有类似的东西,我解决与新的RecyclerView. 我创建了一个片段与一个RecyclerView. xml上的RecyclerView: android:id="@+id/filter ...
- 正确设置Android Support Library
2019独角兽企业重金招聘Python工程师标准>>> 为了支持低版本的Android,一般都要使用到Google提供的支持类库,但今天在设置支持类库的时候,总是遇到错误,弄了大半天 ...
- Android如何固定ip,手机怎么设置固定网关IP
手机怎么设置固定网关IP 安卓手机设置固定IP地址方法1 首先找到手机的"设置"点击进入 然后找到"WLAN"点击进入 再找到准备连接的无线,点击无线名称进行自 ...
- android v7支持库使用,正确引用 Android Support v7 兼容支持库
这个问题昨天下午折腾了我老人家一下午,手动进行了各种组合,最终得以解决.现将步骤严格记录于此,以作备忘. 一.环境及前提 1.Windows 7/Mac OS X 10.9: 2.Eclipse 4. ...
- ubuntu android 手机驱动,ubuntu 下正确安装android手机驱动
1. 查看手机ID号. charlesxue@THSHIBA:~/setup/cocos2d-x/cocos2d-x-2.1.4/projects/simpleGame/proj.android/bi ...
最新文章
- 技术人生:与其鸟宿檐下,不如击翅风雨
- Xcode7 真机免证书调试Cocos2D游戏
- redis cluster 集群 安装 配置 详解
- 汇总内表数据:at end of方法和collect方法
- HTML中a标签/超链接标签的下划线怎么去掉
- java 构造方法和析构方法_PHP面向对象程序设计之构造方法和析构方法详解
- 【开源】.Net Api开放接口文档网站
- JavaScript --- 取得鼠标事件的坐标
- insert时出现主键冲突的处理方法【转载】
- FPGA 串口中断_一个严谨的STM32串口DMA发送amp;接收(1.5Mbps波特率)机制
- IOS开发笔记 - 先有鸡,还是先有蛋?相互引用的奇遇!
- 太牛逼了!自从项目中用了Disruptor之后,性能提升了2.5倍
- [GRE] 填空机经 Section61-65
- 搭建 MongoDB 服务器,MongoDB 基本使用,数据导入导出
- .Net语言的APP开发平台Smobiler3.2版本将于八月中旬发布!——3.2版本预告(二)
- 转:企业数字化的本质,其实就这3条
- windows10如何设置电脑的固定IP地址
- 企业运维之服务管理 -- supervisord
- java在win8闪退_win8.1应用闪退
- telegraf介绍