- 浏览: 136082 次
- 性别:
文章分类
- 全部博客 (226)
- Android (181)
- C# (8)
- BOOTSTRAP (1)
- ASP.NET MVC4 (1)
- 设计模式 (1)
- VB.NET (1)
- WPF (0)
- PLC (0)
- 电气图纸 (0)
- 数据库 (5)
- Java (5)
- Window phone (0)
- 仪器仪表 (0)
- 变频器 (0)
- 低压电器 (0)
- 物联网 (0)
- Photoshop (1)
- SVN (1)
- 单片机 (5)
- IT (1)
- Android_IOS风格 (0)
- Android_广告栏展示 (0)
- Android_动画 (1)
- Android_Adapter (0)
- Android_ListView (1)
- Android_File (2)
- Android_表单提交 (0)
- Android_WebView (1)
- PHP (2)
- Android_Excel (1)
- Android_drawable (1)
- Android_theme (2)
- Android_phonegap (2)
- Android_AndroidManifest (1)
- ThinkPHP (0)
- Jquery (1)
- Android_ContentProvider (1)
最新评论
对于Drawable、Bitmap、Canvas和Paint它们之间的概念不是很清楚,其实它们除了Drawable外早在Sun的J2ME中就已经出现了,但是在Android平台中,Bitmap、Canvas相关的都有所变化。
首先让我们理解下Android平台中的显示类是View,但是还提供了底层图形类android.graphics,今天所说的这些均为graphics底层图形接口。
Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。
Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。
Canvas - 名为画布,我们可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等操作,同时Canvas类还提供了裁剪、选取等操作。
Paint - 我们可以把它看做一个画图工具,比如画笔、画刷。他管理了每个画图工具的字体、颜色、样式。
如果涉及一些Android游戏开发、显示特效可以通过这些底层图形类来高效实现自己的应用。
.转换方法:
1) Bitmap 转化为 byte
1 ByteArrayOutputStream out = new ByteArrayOutputStream();
2 bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
3 byte[] array= out.toByteArray();
2)byte转化为bitmap
复制代码
复制代码
3)bitmap 转换 drawable
4)Drawable to Bitmap
首先让我们理解下Android平台中的显示类是View,但是还提供了底层图形类android.graphics,今天所说的这些均为graphics底层图形接口。
Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。
Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。
Canvas - 名为画布,我们可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等操作,同时Canvas类还提供了裁剪、选取等操作。
Paint - 我们可以把它看做一个画图工具,比如画笔、画刷。他管理了每个画图工具的字体、颜色、样式。
如果涉及一些Android游戏开发、显示特效可以通过这些底层图形类来高效实现自己的应用。
.转换方法:
1) Bitmap 转化为 byte
引用
1 ByteArrayOutputStream out = new ByteArrayOutputStream();
2 bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
3 byte[] array= out.toByteArray();
2)byte转化为bitmap
复制代码
引用
1 final ContentResolver contentResolver = context.getContentResolver();
2 final PackageManager manager = context.getPackageManager();
3 final Cursor c = contentResolver.query(uri, null, null, null, null);
4 final int icon3DIndex = c.getColumnIndexOrThrow(ColumnName);
5 byte[] data = c.getBlob(icon3DIndex);
6 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
2 final PackageManager manager = context.getPackageManager();
3 final Cursor c = contentResolver.query(uri, null, null, null, null);
4 final int icon3DIndex = c.getColumnIndexOrThrow(ColumnName);
5 byte[] data = c.getBlob(icon3DIndex);
6 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
复制代码
3)bitmap 转换 drawable
引用
1 Bitmap bitmap = new Bitmap(...); Drawable drawable = new BitmapDrawable(bitmap);
2 //Drawable drawable = new FastBitmapDrawable(bitmap);
2 //Drawable drawable = new FastBitmapDrawable(bitmap);
4)Drawable to Bitmap
引用
a. BitmapDrawable, FastBitmapDrawable直接用getBitmap
b. 其他类型的Drawable用Canvas画到一个bitmap上
1 Canvas canvas = new Canvas(bitmap)
2 drawable.draw(canvas);
3 Drawable d = ImagesList.get(0); Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
b. 其他类型的Drawable用Canvas画到一个bitmap上
1 Canvas canvas = new Canvas(bitmap)
2 drawable.draw(canvas);
3 Drawable d = ImagesList.get(0); Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
发表评论
-
LayoutInflater
2014-12-22 21:43 505在实际开发中LayoutInflater这个类还是非常有用的, ... -
ContentProvider之读写短消息
2014-12-08 11:08 556http://blog.csdn.net/liuhe ... -
android之启用默认浏览器
2014-11-03 12:36 470一、启动android默认浏览器 Intent inten ... -
eclipse下看android support v4源码
2014-09-18 22:24 591http://cfy10.blog.51cto.com/707 ... -
Android学习 (七)synchronized
2014-09-17 10:16 573http://hi.baidu.com/fenghuang12 ... -
ScheduledExecutorService定时周期执行指定的任务
2014-09-17 09:57 626http://blog.csdn.net/tsyj810883 ... -
android rotate
2014-09-16 15:21 1161rotate:fromDegrees:其实角度。toDegr ... -
Android获取Manifest中<meta-data>元素的值
2014-09-12 15:39 635在AndroidManifest.xml中,<meta- ... -
PopupWindow
2014-09-12 11:09 8361-初始化 PopupWindow mPop = new P ... -
Android的事件分发onInterceptTouchEvent与onTouchEvent、OnClickListener、OnLongClick
2014-09-11 11:05 859onInterceptTouchEvent()是ViewGro ... -
scrollTo、scrollBy、getScrollX、getScrollY这4个方法的含义,Scroller的简单用法
2014-09-11 10:43 1501scrollTo、scrollBy都是 对 ... -
VelocityTracker
2014-09-11 10:14 638android.view.VelocityTracker主要用 ... -
Android之SurfaceHolder
2014-09-09 16:05 560SurfaceHolder,可以把它当成surface的控制器 ... -
android performClick使用
2014-09-09 13:53 1101performClick 是使用代码主动去调用控件的点击事件( ... -
slidingmenu使用说明
2014-09-07 10:17 579左侧、右侧和两边 在BaseActivity中将Slid ... -
Android之SlidingMenu属性详解
2014-09-07 09:52 616SlidingMenu 常用属性介绍: menu.setMod ... -
Android IOS风格侧边栏效果
2014-08-27 13:45 308http://download.csdn.net/detail ... -
android 代码设置、打开wifi热点及热点的连接
2014-08-26 10:30 993见博客文章 http://blog.csdn.net/luob ... -
Android 之两点触摸技术
2014-08-26 09:58 703package mobile.android.multi.to ... -
Android动画之translate(位移动画)
2014-08-25 15:53 431http://www.cnblogs.com/bavariam ...
相关推荐
android 画图 bitmap drawable canvas paint
本文主要介绍Android中Drawable Bitmap Canvas Paint 之间的区别,这里对这几个概念做出详细介绍,开发Android游戏的朋友可以参考下
android Bitmap用法总结 Bitmap用法总结 1、Drawable → Bitmap public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable....
Android Drawable 概述 Bitmap & .9.png Shape XML StateListDrawable Android图形编程 类简介 Canvas Paint Typeface
// []{R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,R.drawable.f,R.drawable.g,R.drawable.h,R.drawable.i,R.drawable.j},true); // mAnimation = new Animation(mContext,new int // []{...
Android画图学习笔记。针对android中的画图中需要的一些类进行介绍,例如Bitmap, Paint, Drawable, Animation等。
import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.widget.ImageView; /** 作者: 时间:2015年11月11日下午5:57:03 修改人: 类描述: 版本: 修改地址:*/ public ...
大牛成长之路: 1. android单实例运行方法 2. px像素如何转为dip设备独立像素 3. Android中动态改变ImageView大小 4. 如何判断Android手机当前是否联网?...5. Drawable、Bitmap、Canvas和Paint的关系 ...
一、简介: 介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法。... 使用 Android.support.v4.graphics.drawable.RoundedBitmapDrawable 实现圆形图片: /** * * Glide 圆
private void drawCurrentPageArea(Canvas canvas, Bitmap bitmap, Path path) { mPath0.reset(); mPath0.moveTo(mBezierStart1.x, mBezierStart1.y); mPath0.quadTo(mBezierControl1.x, mBezierControl1.y, ...
7.2.1 Android绘图基础:Canvas、 Paint等 263 7.2.2 Path类 267 7.2.3 绘制游戏动画 270 7.3 图形特效处理 278 7.3.1 使用Matrix控制变换 278 7.3.2 使用drawBitmapMesh扭曲 图像 282 7.3.3 使用...
3.Paint,与Canvas紧密联系,是”画板”上的笔刷工具,也用于设置View控件上的样式; 4.Drawable,如果说前三者是看不见地在内存中画图,那么Drawable就是把前三者绘图结果表现出来的接口。Drawable多个
《疯狂Android讲义(第2版)》.(李刚).源代码 疯狂Android讲义目录结构: 第2章、Android应用程序界面设计,即View 2.2、布局管理(Layout):LinearLayout、TableLayout、FrameLayout、RelativeLayout; 2.3、基本...
第1章 Android应用与开发环境 1 1.1 Android的发展和历史 2 1.1.1 Android的发展和简介 2 1.1.2 Android平台架构及特性 3 1.2 搭建Android开发环境 5 1.2.1 下载和安装Android SDK 5 1.2.2 安装Eclipse和ADT插件 7 ...
第1章 Android应用与开发环境 1 1.1 Android的发展和历史 2 1.1.1 Android的发展和简介 2 1.1.2 Android平台架构及特性 3 1.2 搭建Android开发环境 5 1.2.1 下载和安装Android SDK 5 1.2.2 安装Eclipse和ADT插件 7 ...
Bitmap、BitmapFactory; 7.2、绘图:Canvas; Paint; Path; 7.3、图形特效处理:使用Matrix控制变换; 使用drawBitmapMesh扭曲图像; 使用Shader填充图形; 7.4、逐帧(Frame)动画:AnimationDrawable; 7.5、补间...
canvas.drawBitmap(projectileBmp, p.x, p.y, paint); } projectiles.removeAll(destroyedProjectiles); // remove targets which's body had outof left bound of gameView List destroyedTargets = ...