android旋转角度,android 旋转角度总结

1  framwork的旋转是通过  mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);来设定

2 摄像头的旋转是通过:cameradevice.info.orotation来查看,camera.setoration()来设定的。一般只有四个方向。

3 orotationeventmanager.orotation.  (这个是360角度分析的)

4 Settings.System.getInt(getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 0);这个也是framwork的

这个设定后整个系统都会有效果。而1 只会当前的actiivty起效果。

另外即时你设定nosensor了,其他方法仍然是有效的。仍然能检测到角度的变化。

其中可能会有错误,但先假设下也行,等有空的时候再验证。

最近自己做了个demo就是使用系统照相机来拍照。

但上来就整了个问题。拍出来的图像旋转了90度,通过setDisplayOrientation 让预览旋转了90度,但保持后的图片显示出来仍然会旋转90度

看来setDisplayOrientation只是旋转了摄像头的,并没有改变camera的其他属性啊。那如何改变存储呢,我明明用byte进行了旋转都不行

还是我的选择不对。public void rotate_90(byte[] data) {

Bitmap bMap = BitmapFactory.decodeByteArray(data, 0, data.length);

Bitmap bMapRotate;

Matrix matrix = new Matrix();

matrix.reset();

matrix.postRotate(90);

bMapRotate = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(),

bMap.getHeight(), matrix, true);

bMap = bMapRotate;

ByteArrayOutputStream baos = new ByteArrayOutputStream();

bMap.compress(Bitmap.CompressFormat.JPEG, 80, baos);

data=baos.toByteArray();

}

横平的话要使用 requestWindowFeature(Window.FEATURE_NO_TITLE);

//设置全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

这样就看不出来是横平还是竖屏了。可悲的结果啊

今天又试了下,发现 imageview的setbitmapiamge方法会根据 屏幕的旋转角度来设置图片

导致图片有时候会旋转90度,看下我的 测试程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值