Android Picture和PictureDrawable的用处

在Android系统中图形类为我们提供了很多图形对象类,很多网友知道Drawable,了解Bitmap之类的,那么今天的Picture和PictureDrawable又是什么东西呢   Android123再次给大家说下,Picture在android.graphics.Picture包中,相对于Drawable和Bitmap而言,Picture对象就小巧的多,它并不存储实际的像素,仅仅记录了每个绘制的过程。整个类提供了两个重载形式,其中比较特别的是Picture(Picture src) 从一个Picture对象去实例化操作, 
Canvas   beginRecording(int width, int height)   //开始记录绘制过程

static Picture   createFromStream(InputStream stream)   //静态方法,从输入流创建一个Pictrue对象

void   draw(Canvas canvas)   //在canvas上画这个picture对象

void   endRecording()   //结束录制绘制过程

int   getHeight()
int   getWidth()

void   writeToStream(OutputStream stream)   //将绘制结果写到输出流中 
我们可以看到整个类中方法不多,但主要的beginRecording和endRecording记录开始和结束,最终通过draw方法绘制到画布上去,而createFromStream和writeToStream可以帮助我们从流中读写这个Picture对象,我们可以将整个绘制过程通过FileInputStream或FileOutputStream放到文件中去。 
PictureDrawable是什么呢  这里Android123提示大家它位于android.graphics.drawable.PictureDrawable 是从Drawable类继承而来的,它的构造方法只有一个就是从Picture对象中实例化,PictureDrawable(Picture picture)
void   draw(Canvas canvas)   // 绘制到Canvas 
int   getIntrinsicHeight()
int   getIntrinsicWidth()
int   getOpacity()   //获取透明度级别 
Picture   getPicture()   //从PictureDrawable转为Picture 
void   setAlpha(int alpha)   //设置透明级别 
void   setColorFilter(ColorFilter colorFilter)
void   setDither(boolean dither)
void   setFilterBitmap(boolean filter)
void   setPicture(Picture picture)
   下面我们就一个简单的例子,来看看它们的具体工作原理: 
Picture p=new Picture(); 
Canvas c=p.beginRecording(320,480); 
c.drawBitmap() ,drawLine等方法处理 
p.endRecording(); 
PictureDrawable pd=new PictureDrawable(p); 
pd.draw(canvaeObj) ; 

 

转自于:http://hi.baidu.com/fynancywin/blog/item/849f733965c012e03d6d97ab.html 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值