现在才发现原来图像没办法贴上来各位下载源代码自己运行把。
Shader , ShapeDrawable两个类实现画图
Android中提供了Shader类专门用来渲染图像以及一些几何图形,Shader下面包括几个直接子类,分别是BitmapShader、 ComposeShader、LinearGradient、RadialGradient、SweepGradient。 BitmapShader主要用来渲染图像,LinearGradient 用来进行梯度渲染,RadialGradient 用来进行环形渲染,SweepGradient 用来进行梯度渲染,ComposeShader则是一个 混合渲染,可以和其它几个子类组合起来使用。
Shader类的使用,都需要先构建Shader对象,然后通过Paint的setShader方法设置渲染对象,然后设置渲染对象,然后再绘制时使用这个Paint对象即可。当然,用不同的渲染时需要构建不同的对象。 下面是一个简单的示例,其实用起来比较简单了 只是方法参数比较多。但是还比较容易理解。大家可以去翻翻API 这里就不深入讨论了,以后用到再说吧。
ShapeDrawable继承自Drawable是可以绘制图像的类。在绘制图像时可以给其设置图形(如下面的运行时图的显示效果)。
1. 获得图像资源
mBitmap = ((BitmapDrawable)getResources()
// .getDrawable(R.drawable.wall))
.getDrawable(R.drawable.gui_lun_mei))
.getBitmap();
2. Shape对象,ShapeDrawable对象,对ShapeDrawable对象进行设置
/*构建ShapeDrawable对象并且定义形状为椭圆*/
mShapDrawable = new ShapeDrawable(new OvalShape());
/*创建BitmapShader对象-----效果渲染*/
mBitmapShader = new BitmapShader(mBitmap, Shader.TileMode.REPEAT, Shader.TileMode.MIRROR);
/*设置Shader对象*/
mShapDrawable.getPaint().setShader(mBitmapShader);
/*设置显示区域*/
mShapDrawable.setBounds(50,50,50 + mBitmapWidth,50 + mBitmapHeight);
3. 绘制图像
/*绘制*/
mShapDrawable.draw(canvas);
效果
LinearGradient---------》线性渐变渲染
//线性渐变熏染
mLinearGradient = new LinearGradient(0, 0, 200, 300,
new int[]{Color.RED,Color.GREEN,Color.BLUE,Color.WHITE} , null,
Shader.TileMode.REPEAT);
//初始化画笔
mPaint = new Paint();
//绘制一个渐变的矩形
mPaint.setShader(mLinearGradient);
canvas.drawRect(mBitmapWidth,0,320,mBitmapHeight, mPaint);
ComposeShader混合渲染
//混合渲染
mComposeGradient = new ComposeShader(mBitmapShader, mLinearGradient, PorterDuff.Mode.DARKEN);
//绘制混合渲染
mPaint.setShader(mComposeGradient);
canvas.drawRect(0, mBitmapHeight, mBitmapWidth, mBitmapHeight + 400, mPaint);
RadiaGradient环形渐变效果
//RadialGradient 环形渐变效果
mRadialGradient = new RadialGradient(200, 200, 50,
new int[]{Color.GREEN,Color.RED,Color.BLUE,Color.WHITE},
null, Shader.TileMode.REPEAT);
mPaint.setShader(mRadialGradient);
canvas.drawCircle(200, 200, 80, mPaint);
SweepGradient梯形渐变
//SweepGradient梯形渐变
mSweepGradient = new SweepGradient(250, 250, new int[]{
Color.GREEN,Color.RED,Color.BLUE,Color.WHITE
}, null);
mPaint.setShader(mSweepGradient);
canvas.drawRect(200, 200, 300, 300, mPaint);
分享到:
相关推荐
3、在EGL线程中,渲染GL_TEXTURE_2D对应的纹理图形; 4、在EGL线程中,完成渲染后,通过eglSwapBuffers方法交换缓冲数据; 5、在ImageReader中onImageAvailable方法中读取surface数据,保存为一张Bitmap; 6、将 ...
GBOX是一个用c语言实现的多平台图形渲染库 现在这个项目,正处于早期开发阶段,暂不提供使用,仅供参考学习 在线源码 项目主页 更多项目 如果您感兴趣,可以阅读源码,目前已实现的功能: 矢量...
Android GLSurfaceView 例子,演示了自定义GLSurfaceView、自定义渲染器的实现,创建一个3D透视模型的例子,里面涉及到触控笔、坐标、数据缓冲、模式矩阵、绘制图形、透视投影矩阵等相关技巧例子,写有几个自定义...
使用GLSurfaceView作为绘图窗口,使用GLSurfaceView.Renderer实现OpenGL渲染图形,并通过调用android.opengl.GLES20中的API函数实现对图像的渲染 使用GLSurfaceView作为绘图窗口,使用GLSurfaceView.Renderer实现...
9.2 图像、图形、文本的基本绘制 9.3 文本的对齐方式 9.4 使用路径效果(PathEffect) 9.5 剪裁效果 9.6 记录绘制的过程 9.7 动画效果 第10章 OpenGL 3D图形的使用 10.1 使用OpenGL图形接口的程序结构 10.2 基本...
在本书第二部分,你就可以在第一部分学习到的知识的基础上开始搭建三维世界中的效果,比如光照和地形渲染,接下来还会学习如何创建可以运行在Android主屏幕(home screen)上的动态壁纸。 本书的读者对象: 如果对...
2.2.5. 在Eclipse中配置Android SDK20 2.3 Android中运行仿真器环境21 2.3.1. 建立Android虚拟设备21 2.3.2. 运行虚拟设备22 2.3.3. 使用Android中的工具23 2.3.4. 使用logcat24 2.3.5. 使用仿真器控制25 2.3.6. ...
4.1 Android图形基础 4.1.1 Color类 4.1.2 Paint类 4.1.3 Canvas类 4.1.4 Path类 4.1.5 Drawable类 4.2 在数独程序中添加图形 4.2.1 开始游戏 4.2.2 定义Game类 4.2.3 定义PuzzleView类 4.2.4 绘制游戏盘面 4.2.5 ...
android.graphics包是核心渲染包,它提供了一些初级图形工具,诸如画布、颜色过滤器、画笔等,可以让你直接在屏幕上进行图像处理
同时为了便于读者的学习,《Android 3D游戏开发技术宝典:OpenGL ES 2.0》附赠的光盘中包含了书中所有案例的完整源代码,同时给出了最后3个完整大型3D游戏案例的讲解视频,最大限度地帮助读者快速掌握相应的开发技术...
6.6 Android图像处理之图形特效处理 137 6.6.1 Android变形矩阵——Matrix 137 6.6.2 像素块分析 142 6.7 Android图像处理之画笔特效处理 145 6.7.1 Porter Duff Xfermode 145 6.7.2 Shader 149 6.7.3 Path ...
Speedy2D图形、图像和文本的硬件加速绘制,具有易于使用的 API。Speedy2D 的目标是:用于创建窗口、渲染图形/文本和处理输入的最简单的 Rust API兼容任何支持 OpenGL 2.0+ 或 OpenGL ES 2.0+ 的设备非常快支持 ...
它提供了全面的2D API,可在移动,服务器和台式机模型之间使用以渲染图像。 SkiaSharp SkiaSharp是基于Google的Skia图形库(skia.org)的用于.NET平台的跨平台2D图形API。 它提供了全面的2D API,可在移动,服务器和...
全书分为18章,分别讲解了UI布局实例集锦、控件实例集锦、自动化服务实例集锦、数据存储实例集锦、电话和短信实例集锦、图形图像实例集锦、和网络有关的实例集锦、多媒体实例集锦、Google地图实例集锦、GoogleAPI...
它提供了全面的2D API,可在移动,服务器和台式机模型之间使用以渲染图像。 SkiaSharp为以下内容提供跨平台绑定: .NET标准1.3 .NET核心提岑Xamarin.Android Xamarin.iOS Xamarin.tvOS Xamarin.watchOS Xamarin.Mac...
通过此项目,您可以学习并掌握在Android平台上使用OpenGL ES进行3D图形渲染的基本技巧,包括着色器编程、纹理映射以及变换矩阵的使用等。 项目特点: 1. **多纹理贴图**:立方体的每个面都可以独立加载和显示不同...
绘制几何图形,添加渲染三角形,等腰三角形,彩色等腰三角形,和圆, 使用OpenGlES对图片进行模糊,冷暖色调等处理, 编写glsl着色器语言,基于Camera + GlSurfaceView实现相机实时预览,实时美颜,实时预览滤镜功能...
由资深OpenGL技术专家亲笔撰写,全面介绍OpenGL ES 3.0的各种特性及新增功能,通过大量已经编译和测试过的实例,详细讲解OpenGL ES 3.0中的应用程序接口(API)和图形管线,既涵盖简单图形的渲染方法,又深入介绍逐...