如何確定拍照時,相機屏幕是橫屏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);設置拍攝照片應該旋轉的角度。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM