編輯:關於Android編程
從Android 2.0開始新增了ExifInterface類,ExifInterface類主要描述多媒體文件比如JPG格式圖片的一些附加信息,比如圖片文件的旋轉,gps,縮略圖等。該類位於android.media.ExifInterface的位置,需要調用API Level至少為5即2.0 SDK。
圖片的的Exif信息和MP3的ID3標簽類似,使用了屬性和值的存儲方式。通過public void setAttribute (String tag, String value) 來設置,而獲取可以通過 public int getAttributeInt (String tag, int defaultValue) 和 public String getAttribute (String tag) 兩種方法都可以,getAttributeInt 重載方法一第二個參數為我們設置的默認值,如果成功則返回相應Tag的值;特定的整數內容為該方法直接返回值。而重載方法二該方法直接返回結果,如果失敗則為null。
目前Android SDK定義的Tag有:
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 白平衡
舉例代碼:
Bitmap bitmap =null; try { ExifInterface exifInterface = new ExifInterface(file.getPath()); int result = exifInterface.getAttributeInt( ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED); int rotate = 0; switch(result) { case ExifInterface.ORIENTATION_ROTATE_90: rotate = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: rotate = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: rotate = 270; break; default: break; } BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.RGB_565; options.inJustDecodeBounds = true; BitmapFactory.decodeFile(filePath, options); if (options.outWidth < 0 || options.outHeight < 0) { return null; } options.inJustDecodeBounds = false; bitmap= BitmapFactory.decodeFile(filePath, options); if(rotate > 0) { Matrix matrix = new Matrix(); matrix.setRotate(rotate); Bitmap rotateBitmap = Bitmap.createBitmap( bitmap, 0, 0, options.outWidth, options.outHeight, matrix, true); if(rotateBitmap != null) { bitmap.recycle(); bitmap = rotateBitmap; } } } catch (IOException e) { e.printStackTrace(); }在指定的tag後,返回一個int類型的值,這裡傳入的是ExifInterface.TAG_ORIENTATION,所以會返回一個角度的int類型的值,當我們用android 平板電腦,或者手機橫屏拍照片時並希望把它作為背景設置在所在的應用背景,而且不希望背景會產生旋轉90度得現象
Android 中保存圖片的代碼(下面鏈接文章也使用到了ExifInterface,方式還不太一樣)
http://blog.csdn.net/wstarx/article/details/6176902
趁著周一休息,更新一下博客。最近項目中使用到了分組管理,需要實現Listview的Item拖動處理。查略一下資料和借鑒了別人的代碼將功能實現了。現在整理一下代碼,方便自己
什麼都先別說,先看預覽圖!預覽圖中是限制了同時最大下載數為 2 的.其實下載管理器的實現是挺簡單的,我們需要弄清楚幾點就行了服務基礎首先我們需要明確一點,下載我們應該使用
前言: 哇喔從題目是不是看出了什麼端倪, 沒錯我打算要造好多好多POP小輪子, 今天是輪子01 , 演示圖片我也是挑了好久呢, 博主真是用心呢, 中午空閒時間發出來, 沒
介紹最近寫代碼沒有手感,就看看書找點寫代碼的靈感。看點高大上的設計模式談談自己的理解。我讀的是《研磨設計模式》看完之後真正的醍醐灌頂。借用一句話 一本值得反復研讀的書讀了