Android画图之Matrix(一)

今天无意间看到了http://chroya.iteye.com/blog/713869的帖子,突然间就对这个Matrix来了兴趣,没事就瞎整一下,在这总结一下自己的心得体会!

Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在Android的API里都提供了set, post和pre三种操作方式,除了translate,其他三种操作都可以指定中心点。

set是直接设置Matrix的值,每次set一次,整个Matrix的数组都会变掉。

post是后乘,当前的矩阵乘以参数给出的矩阵。可以连续多次使用post,来完成所需的整个变换。


咱新手,你懂得!

        Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.wewew);
        Bitmap c =Bitmap.createBitmap(b.getWidth(),b.getHeight(),Bitmap.Config.ARGB_8888);
        Paint p = new Paint();
        p.setColor(Color.RED);
        Canvas canvas = new Canvas(c);
        Matrix m = new Matrix();
        canvas.drawBitmap(b, m, null);
        ImageView imageView = new ImageView(MainActivity.this);
        imageView.setImageBitmap(c);
运行结果:

为Matrix添加属性:

 m.setScale(100f/b.getWidth(), 100f/b.getHeight());
运行结果:

哈哈,变小了,这个setScale是设置缩放比例的(这里将缩放为100*100有一点要注意,如果直接用100/bmp.getWidth()的话,会得到0,因为是整型相除,所以必须其中有一个是float型的,直接用100f就好);

为Matrix继续添加属性:

m.postTranslate(50, 0); 
运行结果:

看出来了吧,这个是让图片在屏幕在平移的,里面的参数是平移量

为Matrix添加继续属性:

m.postRotate(30);  
运行结果:

它旋转了,这个方法是控制旋转的,参数是他的旋转的度数,注意:是顺时针旋转的!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值