zoukankan      html  css  js  c++  java
  • 如何确定拍照时,相机屏幕是横屏or竖屏?

    http://www.eoeandroid.com/thread-80028-1-1.html

    TAG_DATETIME时间日期
      TAG_FLASH闪光灯
      TAG_GPS_LATITUDE纬度
      TAG_GPS_LATITUDE_REF纬度参考
      TAG_GPS_LONGITUDE经度
      TAG_GPS_LONGITUDE_REF经度参考
      TAG_IMAGE_LENGTH图片长
      TAG_IMAGE_WIDTH图片宽
      TAG_MAKE设备制造商
      TAG_MODEL设备型号
      TAG_ORIENTATION方向
      TAG_WHITE_BALANCE白平衡
      从Android2.0.1SDK上看属性不是很多,详细的可能会在以后的版本中添加,调用示例如下
      StringsFileName="cwj-eoeandroid.jpg";
      ExifInterfaceexif=newExifInterface(filename);
      StringsModel=exif.getAttribute(ExifInterface.TAG_MODEL);


    原文链接http://android.tgbus.com/Android/tutorial/201104/349965.shtml

    android自带的照相机应用上就有。
    com.android.camera包下的Camera类中有一个内部类 private class MyOrientationEventListener extends OrientationEventListener并实现了方法public void onOrientationChanged(int orientation)。方法传进的参数orientation以平常竖直放置为0(也就是360度),顺时针旋转orientation增加至359。同时Camera类有一个成员变量mOrientation用来记录屏幕当前的位置,它的值根据orientation并由算法 ((orientation + 45) / 90 * 90) % 360算出。实际上当手机竖直放置左偏44度和右偏44度,mOrientation为0,右偏45时,mOrientation为90(即手机顺时针旋转45度以后,就认为手机从竖屏变成横屏,并且手机真实的顶部由向上变成向右)。这里记住mOrientation就是用来保存屏幕当前横屏竖屏的标志。拍照是在Camera的内部类private class ImageCapture中private void capture()方法由mOrientation的值根据是前置摄像头(算法:rotation = (info.orientation - mOrientation + 360) % 360;),还是后置摄像头(算法:rotation = (info.orientation + mOrientation) % 360;)得出值rotation的值,这个值就是要传到设备的内部类Parameters对象(中间层Camera类的内部类,用来设置白平衡,图片大小等参数的类)用来设置拍摄照片应该旋转的角度,调用方法 mParameters.setRotation(rotation);设置拍摄照片应该旋转的角度。

  • 相关阅读:
    1373:鱼塘钓鱼(fishing)
    1261:【例9.5】城市交通路网
    1259:【例9.3】求最长不下降序列
    1260:【例9.4】拦截导弹(Noip1999)
    1258:【例9.2】数字金字塔
    1261:【例9.5】城市交通路网
    1260:【例9.4】拦截导弹(Noip1999)
    1259:【例9.3】求最长不下降序列
    1257:Knight Moves
    [HAOI2008]硬币购物(动态规划、容斥、搜索)
  • 原文地址:https://www.cnblogs.com/kobe8/p/4047339.html
Copyright © 2011-2022 走看看