2013-09-24 187 views
0

在我的應用程序中,我提供了從文件路徑編輯圖像的功能。 現在我想添加一個功能來改變動畫的圖像方向,然後保存它。用動畫旋轉圖像位圖android

我可以改變方向,但不知道如何給它添加動畫。

這是我的代碼。

ImageView img; 
Bitmap bmp; 
Bitmap rotatedBMP; 
String imageFilePath=""; 
File imgFile; 
public void rotate(){ 
    if(rotatedBMP == null){ 
     if(imgFile != null && imgFile.exists()) 
      bmp = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
    }else 
     bmp = rotatedBMP; 
    // Getting width & height of the given image. 
      int w = bmp.getWidth(); 
      int h = bmp.getHeight(); 
      Matrix mtx = new Matrix(); 
      mtx.preRotate(90); 
      rotatedBMP = Bitmap.createBitmap(bmp, 0, 0, w, h, mtx, true); 
      /*BitmapDrawable bmd = new BitmapDrawable(rotatedBMP); 
      img.setImageDrawable(bmd);*/ 
      img.setImageBitmap(rotatedBMP); 
} 
+0

使用此烏爾改變方向ofimage不輪替]做此http:/ /samir-mangroliya.blogspot.in/p/android-rotation-animation.html –

回答

1

您的旋轉視圖動畫和您想旋轉和保存實際位圖的願望之間存在衝突。

如果要旋轉圖像視圖,最好的方法是使用動畫更新步驟在onDraw方法中旋轉畫布,或者使用Android的助手,例如RotateAnimation。如果你想要例子,請給我們留言。

這是「好方法」,因爲它不會在每個動畫幀上創建新的位圖,這將會非常昂貴。

但是,你有一個衝突,你也想旋轉位圖本身,而不是視圖,以保存它。這很好,因爲它不是每個動畫步驟。

因此您將不得不盡可能晚地保存用戶選擇的想要應用於位圖的轉換。然後對視圖進行動畫處理,但對於用戶來說是合適的。在保存時,您可以在寫入文件時連接所有用戶轉換。或者放棄創作動畫的想法。

我的執行辦法是將本地存儲的第二矩陣,讓每個用戶都輸入更新畫布變換該矩陣。然後,您可以按住保存按鈕時的位圖,並將其應用到更新後的變換矩陣。

很高興根據要求詳細說明。

有消息

Android: Rotate image in imageview by an angle(中提到的問題與創建許多位圖太)

Rotating a view in Android(gauravjain0102的答案是被低估的!)