Android中Drawable Bitmap Canvas Paint之间区别


----------------------------------------------------------------------------------------------------------------------------------

位图也是一种数据结构,说实话,我到今天才知道,以前真是没听过这东西。我个人的理解就是:一个比特位,有0,1的区分。用这个0,1去作为标示位。我的理解多数是肤浅,不正确的,看看网络上的大牛们的理解吧。

http://dongxicheng.org/structure/bitmap/

http://blog.csdn.net/smfwuxiao/article/details/7161761

http://nemogu.iteye.com/blog/1522332


----------------------------------------------------------------------------------------------------------------------------------


2014-3-11号补充


一直都没有用过Canvas, Paint, 原来害怕碰到这个东西,其实看懂了也就那么回事,没什么难的,是我自己把自己给吓住了。
我之前一直不懂的一件事就是,比如看下面的代码:
        Bitmap bitmap=Bitmap.createBitmap(200, 200, Config.ARGB_8888);
        Canvas canvas=new Canvas(bitmap);
        Paint paint=new Paint();
        paint.setColor(Color.RED);
        paint.setTextSize(25);
        canvas.rotate(15);
        canvas.drawText("Hello Android 1", 20, 30, paint);
        canvas.translate(50, 50);
        // 注意:save()方法
        // 保存在此save()方法之前的canvas的操作
        // 比如:roate(),translate(),clipXXX()
        canvas.save();

        paint.setColor(Color.GREEN);
        paint.setTextSize(15);
        canvas.rotate(60);
        canvas.translate(-20,-20);
        canvas.drawText("Hello Android 2", 20, 60, paint);
        //注意:restore()方法
        // 将save()方法之后Canvas的roate(),translate(),clipXXX()的操作清空
        canvas.restore();

我之前一直以为在调用 canvas.restore(); 之后,在 canvas.save(); 和 canvas.restore(); 之间的这段操作都会被revert掉,就是取消掉,比如我画了一个圆,在我调用该了 canvas.restore() 之后,这个圆就消失了,我之前一直都是这么理解的,但是我试过几次之后,发现并不会消失,然后就没有然后了,就一直不理解着~

今天又看了一下,终于理解了~
其实 canvas.restore(); 之后,是对 canvas.save(); 和 canvas.restore(); 之间的这段操作做一些处理的,但是你已经画上去的东西不会有影响,只是你的类似 rotate,translate, clipRect等操作会被revert,被取消掉,然后恢复到 save() 之前的状态~这才是真正的理解。之前一直都是错误的,真悲剧~


参考链接:
这篇文章很好的解释了Canvas 的save(), restore(), ClipRect()方法。
http://blog.csdn.net/lfdfhl/article/details/9074017

这个图文并茂,写的也挺好的~




一个系列的介绍:
http://blog.csdn.net/lonelyroamer/article/details/8299812
http://blog.csdn.net/lonelyroamer/article/details/8264189
http://blog.csdn.net/lonelyroamer/article/details/8349601



http://blog.sina.com.cn/s/blog_7f311ef5010183o6.html
http://www.2cto.com/kf/201312/263154.html


http://byandby.iteye.com/blog/826304
 

http://www.cnblogs.com/playing/archive/2011/05/10/2042241.html

http://blog.csdn.net/xxxx1243/article/details/5834187

http://blog.csdn.net/xxxx1243/article/details/5834155

http://blog.csdn.net/shichaosong/article/details/8110286

http://blog.csdn.net/qinjuning/article/details/6936783

http://blog.csdn.net/rhljiayou/article/details/7212620

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值