Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 拍照圖片旋轉問題

android 拍照圖片旋轉問題

編輯:關於Android編程

[java]      前陣子寫了一個拍照的程序,拍完照片圖片怎麼看都是歪的,找了好久借鑒了很多博客找到了解決的辦法,不說了 看代碼把 [java]  mOrientationListener = new OrientationEventListener(this){               @Override               public void onOrientationChanged(int orientation) {                   orientations =orientation;                   Log.v("time", "現在是橫屏"+orientation);                                  }           };   在oncreate方法中添加OrientationEventListener,OrientationEventListener(方向事件監聽器)是一個當方向發生變化時, 從 SensorManager(傳感器管理程序)接收通知的輔助類,我就是通過這個來判斷手機屏幕的旋轉角度,從而將獲取後的圖片做相應的旋轉。   接下來我在onResume中啟動事件的監聽器     [html]   if(mOrientationListener!=null){//先判斷下防止出現空指針異常               mOrientationListener.enable();           }   然後就可以在onPictureTaken中將圖片旋轉相應的角度:   [java]   BitmapFactory.Options opts = new BitmapFactory.Options();                   opts.inPreferredConfig = Config.RGB_565;                   opts.inSampleSize =4;                    Bitmap bmp = BitmapFactory.decodeByteArray(images, 0, images.length,opts);                   Matrix matrixs = new Matrix();                       if(orientations > 325 || orientations <= 45){                           Log.v("time", "Surface.ROTATION_0;"+orientations);                           matrixs.setRotate(90);                       }else if(orientations > 45 && orientations <= 135){                           Log.v("time", " Surface.ROTATION_270"+orientations);                       matrixs.setRotate(180);                       }else if(orientations > 135 && orientations < 225){                           Log.v("time", "Surface.ROTATION_180;"+orientations);                       matrixs.setRotate(270);                       }else {                           Log.v("time", "Surface.ROTATION_90"+orientations);                       matrixs.setRotate(0);                       }                   bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrixs, true);     這樣圖片就旋轉過來了,最後別忘了在onPause中將事件監聽器關掉:   [java]  if(mOrientationListener!=null){               mOrientationListener.disable();           }     ok!這樣就完成了。這算是一點小小的收獲吧!  
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved