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

Android bitmap中Matrix的几个操作

2014-06-07 22:22 411 查看
package com.example.green2_2;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.view.View;

public class EView extends View{
Paint pt=new Paint();
public EView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
pt.setColor(Color.RED);
pt.setStyle(Style.STROKE);
pt.setStrokeWidth(3);
canvas.drawLine(0 , 0, 40,40, pt);
//canvas.drawArc(null, 34, 29, false, pt);
canvas.drawRect(20, 20, 60, 90, pt);
canvas.drawCircle(44,44, 30, pt);
Rect rect=new Rect(90, 90, 150, 150);
RectF rectf=new RectF(rect);				//必须用RectF转换
Bitmap btp=null;
Matrix mtx=new Matrix();
canvas.drawRect(rect, pt);
canvas.drawArc(rectf, 45, 145, false, pt);
//canvas.drawArc(rect, 90, 45, false, pt);
Path pth=new Path();
pth.lineTo(150, 150);
pth.lineTo(150, 180);
pth.close();
//pth.close();
canvas.drawPath(pth, pt);
pt.setStrokeWidth(1);
pt.setColor(Color.DKGRAY);
canvas.drawText("Bill Gates",100, 79, pt);
canvas.drawTextOnPath("You are great!", pth, 1, 1, pt);
btp=BitmapFactory.decodeResource(this.getResources(),R.drawable.ic_launcher);
//btp=(BitmapDrawable)this.getResources().getDrawable(R.drawable.ic_launcher);
canvas.drawBitmap(btp, 200, 100, pt);
mtx.setTranslate(100, 100);								//在Bitmap的各个set...方法中,各个方法会覆盖
mtx.setRotate(45);
mtx.setRotate(45, 20, 20);								//以坐标点(20,20)为中心进行旋转45度
mtx.postSkew(1f, 2f);									//post类的函数可以延续前面的set类函数
mtx.preTranslate(100, 100);								//pre类的函数的目的在于将这个函数的功能作为mtx的第一个函数执行
canvas.drawBitmap(btp, mtx, pt);						//对位图进行变形(各种图片的操作)

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: