編輯:關於Android編程
本文實例講述了Android編程中調用Camera時預覽畫面有旋轉問題的解決方法。分享給大家供大家參考,具體如下:
在調用Camera寫應用的時候,前後攝像頭的情況有時候是不一樣的。有時候,明明後攝像頭沒有問題,而調用到前攝像頭時,卻倒轉了180°,或者其他角度,百思不得其解。在查看了Android源碼之後,發現它的解決辦法很是好,接下來貼個源碼,以備日後查看。
public static int getDisplayRotation(Activity activity) {
int rotation = activity.getWindowManager().getDefaultDisplay()
.getRotation();
switch (rotation) {
case Surface.ROTATION_0: return 0;
case Surface.ROTATION_90: return 90;
case Surface.ROTATION_180: return 180;
case Surface.ROTATION_270: return 270;
}
return 0;
}
public static void setCameraDisplayOrientation(Activity activity,
int cameraId, Camera camera) {
// See android.hardware.Camera.setCameraDisplayOrientation for
// documentation.
Camera.CameraInfo info = new Camera.CameraInfo();
Camera.getCameraInfo(cameraId, info);
int degrees = getDisplayRotation(activity);
int result;
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
result = (info.orientation + degrees) % 360;
result = (360 - result) % 360; // compensate the mirror
} else { // back-facing
result = (info.orientation - degrees + 360) % 360;
}
camera.setDisplayOrientation(result);
}
在調用Camera的時候只要調用setCameraDisplayOrientation這個方法就可以了。
希望本文所述對大家Android程序設計有所幫助。
魅藍Note 3無法切換優酷超清解決方法
很多入手了魅藍Note 3的機友們發現,在魅藍Note3上優酷居然沒有超清視頻的選項,這對於喜歡看超清視頻的機友們而言無疑是一種折磨。這種事情小編也是郁悶了
Android Context 到底是什麼?
什麼是Context?一個Context意味著一個場景,一個場景就是我們和軟件進行交互的一個過程。比如當你使用微信的時候,場景包括聊天界面、通訊錄、朋友圈,以及背後的一些
Android中實時獲取音量分貝值詳解
基礎知識度量聲音強度,大家最熟悉的單位就是分貝(decibel,縮寫為dB)。這是一個無綱量的相對單位,計算公式如下:分子是測量值的聲壓,分母是參考值的聲壓(20微帕,人
Android之帶group指示器的ExpandableListView(自寫)
我們都知道Android缺省的ExpandableListView的group header無法固定在界面上,當向下滾動後,不能對當前顯示的那些child 指示出它們歸屬