您的位置:首页 > 移动开发 > Android开发

android利用matrix对图片中心旋转

2012-03-14 21:28 295 查看
package com.test;

import java.io.Console;

import android.R.integer;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.SlidingDrawer.OnDrawerCloseListener;

public class MatricRotalTestActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(new Draw(this));
}

class Draw extends View
{
public Draw(Context context)
{
super(context);
}

@Override
public void onDraw(Canvas  canvas)
{
float width = bitmap.getWidth() / 2;
float height = bitmap.getHeight() / 2;
matrix.postRotate(30, 0, 0);
matrix.getValues(matrixArray);

float a = 240.0f - width * matrixArray[0] - height * matrixArray[1];
float b = 400.0f - width * matrixArray[3] - height * matrixArray[4];
Log.i("a", String.valueOf(a));
Log.i("b", String.valueOf(b));
matrix.postTranslate(a, b);
matrix.getValues(matrixArray);
canvas.drawBitmap(bitmap, matrix, null);
String str = new String();
for(int i = 0; i < matrixArray.length; i ++)
{
str += String.valueOf(matrixArray[i]) + ",";
}
Log.i("jiaodu", str);
super.onDraw(canvas);

}

Bitmap bitmap = Bitmap.createBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.you), 0, 0, 480, 300);
Matrix matrix = new Matrix();
float matrixArray[] = new float[9];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: