做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,还是我们有理解到坐标点的意义。
分享到:
相关推荐
在Android开发中,`onDraw()`方法是View类的一个关键回调方法,用于绘制自定义视图的图形内容。当你创建一个自定义View并期望在屏幕上看到任何可视元素时,`onDraw()`是至关重要的。然而,有时候我们可能会遇到`...
`onDraw()`是Android View类的一个关键回调方法,当系统需要更新View的内容时,就会调用这个方法。在这个方法中,开发者可以使用Canvas对象进行绘制操作,如画线、画圆、填充颜色等。Canvas提供了多种绘图API,如`...
在Android中,实现圆形图片通常通过重写`onDraw()`方法,裁剪绘制的矩形区域为圆形,或者利用`Shader`的`BitmapShader`类来实现。 要让图片持续匀速旋转,我们需要利用Android的动画系统。Android提供了多种动画...
Android系统通过`onDraw()`方法来绘制View,而`onLayout()`方法用于确定子View的位置。在拖动过程中,我们需要更新View的位置并重绘,确保用户看到的是最新的状态。但是,如果这个过程处理不当,可能会导致屏幕闪烁...
android:layout_width=match_parent android:layout_height=match_parent android:clipChildren=false> <ImageView android:layout_width=match_parent android:layout_height=match_parent an
本示例将详细讲解如何通过`onDraw()`在Android的View中实现绘图。 首先,我们需要创建一个新的Activity,例如`AndroidTest`,并在`onCreate()`方法中实例化我们的自定义View,然后将其设置为布局内容。代码如下: ...
Android 中View.onDraw(Canvas canvas)的使用方法 View通过View.onDraw(Canvas canvas)来Draw. 我们可以定义自己的继承于View的TestView,然后重载View.onDraw(Canvas canvas). 对于自定义的TestView如何与Activity...
在Android开发中,`OnDraw` 是一个非常关键的方法,它是自定义视图(View)进行绘制的核心。当你想要在视图上呈现自己的图形、图案或者动画时,通常需要重写 `onDraw()` 方法。`OnDraw()` 提供了一个空的画布,允许...
本文实例为大家分享了Android绘制钟表的具体代码,供大家参考,具体内容如下 首先要画一个表,我们要先知道步骤如何: 1、仪表盘—-外面最大的圆盘 2、刻度线—-四个长刻度和剩下的短刻度 3、刻度值—-对应的刻度下...
在Android开发中,有时我们可能需要创建一个独特的用户体验,比如设计一个圆形的相机预览窗口。这个场景就涉及到了Android的SurfaceView以及如何定制它的显示效果。本文将深入探讨如何实现一个圆形的相机预览窗口。 ...
这个例子展示了Android自定义View的基本流程,包括解析XML属性、重写`onDraw()`方法以及与UI交互。对于更复杂的自定义视图,可能还需要处理触摸事件、动画效果等额外功能。总的来说,自定义View为Android应用提供了...
在Android开发中,自定义视图(View)是实现复杂界面和交互的重要手段。本教程将探讨如何通过重写`onDraw()`和`onMeasure()`方法来自定义一个专门用来显示价格的`PriceView`。`onDraw()`方法用于绘制视图的内容,而`...
在Android开发中,有时我们需要创建一些独特形状的视图,以实现特定的界面设计或交互效果。"Android-TrapezoidPartsView-梯形控件"项目就是为了解决这样的需求,它提供了一个能够绘制梯形图像并处理其上的事件的...
在Android开发中,有时我们需要对显示的图片进行特殊处理,比如让图片呈现圆角或完全圆形。本知识点将深入探讨如何在Android应用中完美实现图片的圆角和圆形效果。 首先,我们来看如何实现图片的圆角效果。Android...
在Android开发中,为了提升用户体验,开发者经常需要创建各种自定义的Loading加载框来提示用户应用正在处理数据或执行操作。本教程将详细介绍三种不同的自定义加载框实现方法,帮助你的应用程序在等待过程中呈现更...
在Android开发中,自定义控件是提升应用用户体验和界面美观度的重要手段。本文将详细介绍如何实现三种常用的方法来创建自定义的圆形进度条(ProgressBar)。这些方法包括使用Shape Drawable、自定义View以及使用第三...
Android 的自定义 View 为开发者定义和使用个性化的 View 提供了很好的支持,想要使用自己定义的 View,需要继承 View 类,并重写构造函数和 onDraw() 函数。onDraw 函数在界面刷新时会被调用,通过线程控制可以...
使用`onDraw()`方法进行绘图,而`onMeasure()`方法用于确定视图的大小。 2. **数据模型**:定义一个数据结构来存储当前选中的日期,以及可选的日期范围。这可能是`Calendar`对象或者自定义的日期类。 3. **事件...