當前位置:首頁 » 安卓系統 » android圖片翻轉

android圖片翻轉

發布時間: 2024-04-18 02:54:02

⑴ 如何解決Android三星手機從圖庫選擇照片旋轉問題

最近解決了一個令我頭疼好久的問題,就是三星手機拍照圖片旋轉的問題,項目中有上傳圖片的功能,那麼涉及到拍照,從相冊中選擇圖片,別的'手機都ok沒有問題,唯獨三星的手機拍照之後,你會很清楚的看到會把照片旋轉一下,然後你根據路徑找到的圖片就是已經被旋轉的了,解決辦法終於被我找到了。我們可以根據圖片的路徑讀取照片exif(Exchangeable Image File 可交換圖像文件)信息中的旋轉角度,至於這個EXIF可以看一下大牛的文章

Android 下的EXIF

根據調試,可以清楚的發現三星手機拍照的圖片的旋轉角度是90度,而別的手機旋轉角度是0度

看一下代碼:

/** * 讀取照片exif信息中的旋轉角度 * @param path 照片路徑 * @return角度 */ public static int readPictureDegree(String path) { int degree = 0; try { ExifInterface exifInterface = new ExifInterface(path); int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_90: degree = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: degree = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: degree = 270; break; } } catch (IOException e) { e.printStackTrace(); } return degree; }

那麼我們只需要根據旋轉角度將圖片旋轉過來就OK了

public static Bitmap toturn(Bitmap img){ Matrix matrix = new Matrix(); matrix.postRotate(+90); /*翻轉90度*/ int width = img.getWidth(); int height =img.getHeight(); img = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true); return img; }

輕松解決了,是不是很完美?

以上就是本文的全部內容,希望大家喜歡。

⑵ 鎵嬫満浠涔堣蔣浠跺彲浠ユ妸鍥劇墖榪涜360搴﹀乏鍙蟲棆杞

榪欐牱鍙浠ユ棆杞鍥劇墖鐨勮蔣浠舵湁寰堝氾紝姣斿俻hotoshop pixlr絳夋渶綆鍗曠殑濡傜敤鎵嬫満緹庡浘縐縐閲岀殑緙栬緫鈥斺旀棆杞灝辮兘鎶婂浘鐗囦換鎰忔棆杞錛http://www.285868.com/android/app/show-2980.html璇曡瘯鍚

⑶ android怎麼實現一張圖片旋轉幾秒後後自動換到另一張圖片

圖片旋轉使用動畫,設置動畫時間,旋轉完成後,設置另一張圖片

RotateAnimation 動畫,
RotateAnimation (float fromDegrees, float toDegrees, int
pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
參數說明:

float fromDegrees:旋轉的開始角度。
float toDegrees:旋轉的結束角度。
int
pivotXType:X軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
float
pivotXValue:X坐標的伸縮值。
int
pivotYType:Y軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
float
pivotYValue:Y坐標的伸縮值。

⑷ 在Android里怎麼讓一張png圖片循環旋轉,就像雷達裡面那個,不停地旋轉,可以有按鈕控制開關的

使用皮歲android中的野握漏旋轉動畫,讓imageview以自身為中心旋轉,在寫個Button控頌爛制動畫的開始結束

可參考:http://blog.csdn.net/feng88724/article/details/6318430

⑸ android 怎麼得到手機拍照照片的旋轉角度

具體思路:
1、首先在調用拍照方法時,保存拍照後的相片原圖,得到原圖路徑,(PhotoBitmapUtils是我自己寫的一個工具類)

String fileName = "";
/**
* 啟動相機拍照
*/
private void addBitmapShoots() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 設置圖片要保存的 根路徑+文件名
fileName = PhotoBitmapUtils.getPhotoFileName(getContext());
File file = new File(fileName);
if (!file.exists()) {
try {
file.createNewFile();

⑹ 鑽h30鎬庝箞鍙栨秷鑷鍔ㄦ棆杞

鍏抽棴浜嗘墜鏈虹殑鑷鍔ㄦ棆杞寮鍏籌紝搴旂敤浠嶇劧浼氳嚜鍔ㄦ棆杞銆
鍏抽棴鑷鍔ㄦ棆杞寮鍏沖悗錛孉ndroid鏀鎸佷笁鏂瑰簲鐢ㄨ嚜宸辮幏鍙栭噸鍔涘弬鏁幫紝搴旂敤鍙浠ラ氳繃榪欎簺鍙傛暟錛岃皟鏁寸晫闈㈣掑害銆傚簲鐢ㄨ繖鏍瘋捐℃槸涓轟簡嫻忚堜俊鎮涓嶅彈鑷鍔ㄦ棆杞寮鍏沖獎鍝嶏紝濡傛煡鐪嬪浘鐗囥佽嗛戙佹父鎴忕瓑銆
閮ㄥ垎搴旂敤鍙浠ラ氳繃搴旂敤鍐呯殑寮鍏蟲帶鍒訛紝濡傚浘搴撱
璇鋒墦寮鍥懼簱 > 鏇村 > 璁劇疆 > 鍥劇墖鏃嬭漿錛屾垨鍥懼簱 >鈥滀笁鐐瑰浘鏍団 > 璁劇疆 > 鍥劇墖鏃嬭漿錛岄夋嫨璺熼殢緋葷粺錛岃繖鏍峰浘鐗囩殑鏃嬭漿鍔熻兘灝變細涓庢墜鏈虹郴緇熷睆騫曚繚鎸佷竴鑷淬
閮ㄥ垎搴旂敤涓嶆敮鎸佸簲鐢ㄥ唴寮鍏寵劇疆錛屽傜帇鑰呰崳鑰絳夊簲鐢ㄣ傚彲浠ュ皢姝ら棶棰樺弽棣堢粰涓夋柟搴旂敤銆備互鐜嬭呰崳鑰涓轟緥錛氳繘鍏ョ帇鑰呰崳鑰涓葷晫闈錛岀偣鍑誨彸涓婅掕劇疆>鑱旂郴瀹㈡湇錛屽彲浠ユ牴鎹闇瑕佽繘琛屽弽棣堛

⑺ Android自定義控制項之可平移、縮放、旋轉圖片控制項

先上效果圖

源碼

單點拖動圖片對圖片進行平移操作。雙手縮放圖片大小和旋轉圖片到一定的角度。圖片縮放的時候 不能大於最大的縮放因子和小於最小的縮放因子。大於最大縮放因子或者小於最小縮放因子需要對圖像進行回彈。圖片旋轉的角度只能為90度的倍數,不滿足90度要進行回彈。圖片回彈要一個漸變的效果。

大體思路: 首先,Android中提供了Matrix類可以對圖像進行處理。其次,要顯示一張圖片最容易想到的就是ImageView。回彈要求漸變的過程,可以通過屬性動畫進行設置。所以大體的思路是:繼承ImageView,重寫onTouchEvent()方法,判斷事件類型,在對應的事件使用Matrix對圖像進行變換。
Matrix是一個已經封裝好的矩陣,最重要的作用就是對坐標點進行變換。
舉個栗子:
1.某個點(x0,y0,1)通過單位矩陣E映射得到的點還是(x0,y0,1)。

3.點(x0,y0,1)通過矩陣T映射得到的點就會做如下的變換

可以看到點(x0,y0,1)經過T矩陣在x軸方向上平移了dx,在y軸方向上平移了dy。

通過以上的變換可以得到具體的思路: 我們維護一個圖像對應的矩陣mCurrentMatrix,該矩陣主要是對ImageView中的圖像的各個點進行映射。ImageView在容器位置擺放完成之後,置mCurrentMatrix矩陣為單位矩陣。當onTouchEvent()方法中觸發單點觸控並且手指進行平移的時候,調用矩陣mCurrentMatrix的postTranslate(dx,dy),對mCurrentMatrix進行變換。當手指抬起,利用變換結束後的矩陣對圖像的各個點進行映射,從而得到平移變換後的圖像。同理可得,在兩只手指進行縮放旋轉的時候,我們對矩陣mCurrentMatrix進行各種變換,當縮放旋轉的事件結束再利用變換完的矩陣去映射圖像的各個點,從而得到縮放、旋轉後的圖像。

安卓自定義View進階 - Matrix原理
安卓自定義View進階 - Matrix詳解

首先理清事件的邏輯:

初始化圖像大小和位置

縮放圖像大小和控制項大小自適應,平移圖像中心和控制項中心重合

onTouchEvent()函數

平移操作

將圖像對應的矩陣進行變換。

縮放操作

mBoundRectF為記錄圖像邊界的矩形。縮放的時候選取圖像的中心進行縮放。

旋轉操作

旋轉的時候旋轉的旋轉中心也是圖像的中心

圖像中各個點的映射

調用ImageView的setImageMatrix(Matrix matrix)會讓ImageView根據設置的matrix去重新繪制圖像。

更新圖像的矩形邊界

獲得圖像的矩形,並根據矩陣映射矩形各個點的坐標。

縮放回彈

旋轉回彈

一些計算方法

要求圖像的變換是一個漸變的過程,很容易想到的就是屬性動畫。因為屬性動畫本身就是對值進行不斷set的過程。而我們維護的矩陣也是一個值,所以很自然可以想到,如果得到回彈之前的矩陣的值以及回彈之後矩陣的值,就可以根據動畫監聽器中動畫當前的系數值去改變矩陣的值。

對animator對象設置完監聽器之後,就可以在手指抬起的時候調用屬性動畫的start()方法開啟動畫。

自定義可平移、縮放、旋轉的控制項主要點有兩個方面:一是onTouchEvent()中判斷平移、旋轉、縮放的觸發條件,平移位移量、縮放比例因子、旋轉角度的計算。二是Matrix矩陣的應用。

熱點內容
安川編程招工 發布:2024-04-30 15:21:31 瀏覽:641
lru缺頁演算法 發布:2024-04-30 15:19:29 瀏覽:496
伺服器內網ip和外網ip是什麼 發布:2024-04-30 15:13:13 瀏覽:752
c編譯的產物 發布:2024-04-30 15:07:07 瀏覽:58
sql2000服務 發布:2024-04-30 15:00:05 瀏覽:530
如何導出土豆緩存視頻 發布:2024-04-30 14:39:36 瀏覽:470
圖論環的演算法 發布:2024-04-30 14:39:35 瀏覽:641
演算法課項目 發布:2024-04-30 14:23:34 瀏覽:245
路由器無線密碼從哪裡看 發布:2024-04-30 13:41:07 瀏覽:765
安卓由哪個公司提供 發布:2024-04-30 12:27:03 瀏覽:417