**********************************************************************
android 实现图片的翻转
**********************************************************************
Resources res = this.getContext().getResources();
img = BitmapFactory.decodeResource(res, R.drawable.aa);
Matrix matrix = new Matrix();
matrix.postRotate(180); /*翻转180度*/
int width = img.getWidth();
int height = img.getHeight();
img_a = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true);
然后可以直接把img_a draw到画布上,canvas.drawBitmap(img_a, 10, 10, p);
Matrix 是一个处理翻转、缩放等图像效果的重要类,Matrix.postScale 可设置缩放比例,默认为1
**********************************************************************
android 实现图片的旋转
**********************************************************************
public class ex04_22 extends Activity{
private ImageView mImageView;
private Button btn1,btn2;
private TextView mTextView;
private AbsoluteLayout layout1;
private int ScaleTimes=1,ScaleAngle=1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImageView=(ImageView)findViewById(R.id.myImageView);
final Bitmap bmp=BitmapFactory.decodeResource(this.getResources(),R.drawable.ex04_22_1);
final int widthOrig=bmp.getWidth();
final int heightOrig=bmp.getHeight();
mImageView.setImageBitmap(bmp);
btn1=(Button)findViewById(R.id.myButton1);
btn1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
ScaleAngle--;
if(ScaleAngle
ScaleAngle=-60;
}
int newWidth=widthOrig*ScaleTimes;
int newHeight=heightOrig*ScaleTimes;
float scaleWidth=((float)newWidth)/widthOrig;
float scaleHeight=((float)newHeight)/heightOrig;
Matrix matrix=new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
matrix.setRotate(5*ScaleAngle);
Bitmap resizeBitmap=Bitmap.createBitmap(bmp, 0, 0, widthOrig, heightOrig, matrix, true);
BitmapDrawable myNewBitmapDrawable=new BitmapDrawable(resizeBitmap);
mImageView.setImageDrawable(myNewBitmapDrawable);
}
});
btn2=(Button)findViewById(R.id.myButton2);
btn2.setOnClickListener(new OnClickListener(){
public void onClick(View v){
ScaleAngle++;
if(ScaleAngle>60){
ScaleAngle=60;
}
int newWidth=widthOrig*ScaleTimes;
int newHeight=heightOrig*ScaleTimes;
float scaleWidth=((float)newWidth)/widthOrig;
float scaleHeight=((float)newHeight)/heightOrig;
Matrix matrix=new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
matrix.setRotate(5*ScaleAngle);
Bitmap resi