位圖的旋轉也可以借助Matrix或者Canvas來實現。
通過postRotate方法設置旋轉角度,然后用createBitmap方法創建一個經過旋轉處理的Bitmap對象,最后用drawBitmap方法繪制到屏幕上,于是就實現了旋轉操作。
下面例子中把原位圖和經旋轉處理的位圖都繪制到屏幕上,目的是做一個對比。

package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; public class mianActivity extends Activity { private BitmapView bitmapView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); bitmapView = new BitmapView(this); setContentView(bitmapView); } } BitmapView.Java
package xiaosi.bitmap; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.view.View; public class BitmapView extends View { public BitmapView(Context context) { super(context); } //重寫onDraw方法 public void onDraw(Canvas canvas) { // 獲取資源文件的引用res Resources res = getResources(); // 獲取圖形資源文件 Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.h); // 設置canvas畫布背景為白色 canvas.drawColor(Color.BLACK); // 在畫布上繪制縮放之前的位圖,以做對比 //屏幕上的位置坐標是0,0 canvas.drawBitmap(bmp, 0, 0, null); // 定義矩陣對象 Matrix matrix = new Matrix(); // 縮放原圖 matrix.postScale(1f, 1f); // 向左旋轉45度,參數為正則向右旋轉 matrix.postRotate(-45); //bmp.getWidth(), 500分別表示重繪后的位圖寬高 Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), 500, matrix, true); // 在畫布上繪制旋轉后的位圖 //放在坐標為0,200的位置 canvas.drawBitmap(dstbmp, 0, 200, null); } } 源代碼下載:點擊打開鏈接
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答