Android Picture和PictureDrawable的用处 Android开发技术

  在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) ;  

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2023 Tadke.com. 琼ICP备20000547号