做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas,进行绘制,也可以自定义一个View,用它的Canvas。不同的时,Android里没有Graphics,而用Paint代之,当然用法也稍有不同。以下是自定义View的一段代码:
@Override
public void onDraw(Canvas canvas) {
// 首先定义一个paint
Paint paint = new Paint();
// 绘制矩形区域-实心矩形
// 设置颜色
paint.setColor(Color.WHITE);
// 设置样式-填充
paint.setStyle(Style.FILL);
// 绘制一个矩形
canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);
// 绘空心矩形
// 设置颜色
paint.setColor(Color.RED);
// 设置样式-空心矩形
paint.setStyle(Style.STROKE);
// 绘制一个矩形
canvas.drawRect(new Rect(10, 10, 50, 20), paint);
// 绘文字
// 设置颜色
paint.setColor(Color.GREEN);
// 绘文字
canvas.drawText(str, 30, 30, paint);
// 绘图
// 从资源文件中生成位图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
// 绘图
canvas.drawBitmap(bitmap, 10, 10, paint);
}
以上需要注意的有三点:
1、Android中的Rect和java中的可能稍有区别,前两个参数是左上角的坐标,后两个参数是右下角的坐标(不是宽度和高度);
2、Style.STROKE和Style.FILL外边的像素数是有区别的,这点和java里一样;
3、绘文字时,设置的坐标点为(30,30),但绘出来后你会发现,文字的左上角坐标要比你设置的偏上,不知道是android设置的bug,还是我们有理解到坐标点的意义。
(作者:子轩,邮箱:zh1003@163.com)
[本节结束]
分享到:
相关推荐
总之,这个"画图"应用的源代码涵盖了Android图形系统的核心概念和技术,对于想要学习Android应用开发,尤其是涉及图形绘制和用户交互的开发者来说,是一份宝贵的学习资源。通过深入研究和实践,可以进一步提升开发...
Android提供了丰富的绘图API,如Canvas和Paint,可以用来绘制游戏场景和角色。同时,通过帧动画或者精灵图来实现角色的动态效果。对于3D游戏,可以利用OpenGL ES进行3D渲染。《抢滩登陆》这类2D游戏,主要依赖于2D...
总的来说,实现"android自定义效果——随机抽奖"涉及的知识点包括:自定义视图的创建与绘制、Android动画机制(特别是`ObjectAnimator`)、随机数生成、触摸事件处理以及视图的优化。掌握这些技能,开发者可以创建出...
《Android小游戏——像素鸟》是一款基于Android平台的休闲游戏,其核心玩法是引导一只像素风格的小鸟在由管道构成的障碍物间穿梭。这款游戏的实现主要涉及到Android开发的基础知识、Java编程语言以及游戏编程的基本...
在Android开发中,自定义View是一项重要的技能,它允许开发者创造出独特且富有创意的用户界面。本篇文章将探讨如何创建一个仿雷达扫描效果的自定义View。雷达扫描效果常见于许多应用中,如游戏、安全监控或者定位...
Android提供了丰富的绘图API,使得开发者可以自定义视图,创建出复杂且富有表现力的UI。本篇文章将深入探讨Android的绘图机制与处理技巧,重点关注`Layer`和`Canvas`的概念。 Android绘图的核心在于`Canvas`和`...
本文将围绕“android自定义view——波浪线”这一主题,深入探讨如何实现这样的自定义组件。 首先,我们了解自定义View的基本步骤。创建一个自定义View通常需要继承自Android的View或其子类,如ViewGroup。在这个...
本示例中的“Android自定义SurfaceView——实现画板功能”旨在教你如何利用`SurfaceView`创建一个可以画画的应用。`SurfaceView`是Android系统提供的一种用于高效显示动态图像的视图组件,它拥有自己的渲染线程,...
本教程将专注于一个具体的特效——数字滚动条。这个特效通常用于显示数值的变化,如计数、评分或者时间等,能动态地展示数值的增减,使得信息更直观、生动。 数字滚动条是一种自定义视图组件,它并不是Android SDK...
这款由你提供的项目,"android贪吃蛇游戏——snake",显然是一款用Java或Kotlin语言实现的Android应用程序,它利用Android SDK中的图形库和事件处理机制来创建一个交互式的贪吃蛇游戏界面。 首先,我们要理解贪吃蛇...
这个压缩包文件“安卓Android源码——android 仿真翻页效果.zip”包含了实现这种效果的源代码,这对于开发者来说是一个很好的学习资源。 在Android平台上,模拟真实的翻页效果通常涉及到对视图(View)的复杂操作,...
这份“安卓Android源码——(Canvas画布).rar”压缩包很可能是包含了一些关于Canvas使用的源代码示例或者解析,帮助我们深入理解Android图形绘制的底层机制。 Canvas是Android中的一个类,它允许开发者通过调用其...
《Android游戏源码——忍者快跑》是一个用于学习和研究Android游戏开发的资源包,它包含了一款名为“忍者快跑”的游戏的完整源代码。通过分析和理解这个源码,开发者可以深入掌握Android游戏开发的核心技术,以及...
"安卓Android源码——标记view.zip"这个压缩包很可能包含了关于Android系统中View及其相关组件的源码分析,特别是关于“标记”功能的实现。在这个压缩包里,我们注意到一个名为"android-viewbadger"的文件,这可能是...
《安卓Android源码深度探索——以FindNiwei项目为例》 在移动开发领域,安卓(Android)操作系统无疑占据了主导地位,其开源特性使得开发者能够深入理解系统底层运作,进行个性化定制和性能优化。本文将围绕...
《Android华容道:探索移动开发的趣味编程实践》 ...对于想要深入学习Android开发的初学者来说,这是一个很好的实战项目,它将理论知识与实践相结合,帮助开发者提升技能,同时也能体验到编程的乐趣。
以上就是关于“安卓Android源码——安卓Android Launcher 桌面分页滑动代码”这个主题的一些关键知识点。通过深入理解这些概念和技术,开发者可以更好地理解和定制自己的启动器,提供独特的用户体验。
在安卓(Android)系统中,源码是理解其工作原理的关键。"安卓Android源码——draw.rar...这个压缩包"draw.rar"中的内容可能包含了上述部分或全部概念的源代码实现,为学习和研究Android图形绘制提供了一个宝贵的资源。
总的来说,学习并理解这个“Android源码——UI界面源码.rar”中的内容,对于深入理解Android UI开发、提升自定义界面能力具有很大的帮助。开发者可以通过阅读源码,学习如何高效地创建、管理和交互UI组件,进一步...