`

API中画arc的简单代码

阅读更多
package com.test;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;

public class DrawActivity extends Activity {

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(new DrawView(this));
	}

	private static class DrawView extends View {
		private Paint[] mPaints;
		private Paint mFramePaint;
		private RectF[] mOvals;
		private RectF mBigOval;
		private float mStart;
		private float mSweep;
		private int mBigIndex;
		private boolean[] mUseCenters;

		private static final float START_INC = 0;
		
		// 度数增加控制参数
		private static final float SWEEP_INC = 2;

		public DrawView(Context context) {
			super(context);
			mPaints = new Paint[4];
			mUseCenters = new boolean[4];
			mOvals = new RectF[4];

			mPaints[0] = new Paint();
			mPaints[0].setAntiAlias(true);
			mPaints[0].setColor(0x88111111);
			mUseCenters[0] = false;

			mPaints[1] = new Paint(mPaints[0]);
			mPaints[1].setStyle(Paint.Style.FILL);
			mPaints[1].setColor(0x88FF0000);
			mUseCenters[1] = true;

			mPaints[2] = new Paint(mPaints[0]);
			mPaints[2].setStyle(Paint.Style.STROKE);
			mPaints[2].setStrokeWidth(10);
			mPaints[2].setColor(0x8800FF00);
			mUseCenters[2] = false;

			mPaints[3] = new Paint(mPaints[2]);
			mPaints[3].setStyle(Paint.Style.FILL_AND_STROKE);
			mPaints[3].setColor(0x880000FF);
			mUseCenters[3] = true;

			mBigOval = new RectF(40, 10, 280, 250);

			mOvals[0] = new RectF(10, 270, 70, 330);
			mOvals[1] = new RectF(90, 270, 150, 330);
			mOvals[2] = new RectF(170, 270, 230, 330);
			mOvals[3] = new RectF(250, 270, 310, 330);

			mFramePaint = new Paint();
			mFramePaint.setAntiAlias(true);
			// 控制图形是否填充
			mFramePaint.setStyle(Paint.Style.STROKE);
			mFramePaint.setStrokeWidth(5);
		}

		private void drawArcs(Canvas canvas, RectF oval, boolean useCenter,
				Paint paint) {
			canvas.drawRect(oval, mFramePaint);
			canvas.drawArc(oval, mStart, mSweep, useCenter, paint);
		}

		protected void onDraw(Canvas canvas) {
			canvas.drawColor(Color.WHITE);
			drawArcs(canvas, mBigOval, mUseCenters[mBigIndex],
					mPaints[mBigIndex]);

			for (int i = 0; i < 4; i++) {
				drawArcs(canvas, mOvals[i], mUseCenters[i], mPaints[i]);
			}

			mSweep += SWEEP_INC;
			if (mSweep > 360) {
				mSweep -= 360;
				mStart += START_INC;
				if (mStart >= 360) {
					mStart -= 360;
				}
				mBigIndex = (mBigIndex) % mOvals.length;
			}
			invalidate();
		}
	}
}
分享到:
评论

相关推荐

    H5动画 实验代码

    通过`context.drawImage()`、`context.beginPath()`、`context.arc()`等方法,可以实现复杂的动画效果,如平移、旋转、缩放等。 2. **SVG(Scalable Vector Graphics)** SVG是一种基于XML的矢量图格式,它支持...

    html5教程调用绘图api画简单的圆形代码分享

    在给定的代码中,可以看到这样的定义: ```html &lt;canvas id="drawbox" width="500" height="500"&gt;&lt;/canvas&gt; ``` 这里创建了一个id为"drawbox"的canvas元素,宽度为500像素,高度为500像素。 接下来,我们需要通过...

    HTML5 canvas多功能涂鸦画板绘图代码.zip

    在这个项目中,jQuery用于简化DOM元素的选取和事件绑定,使得代码更简洁、易读。 3. **直线、矩形、圆圈、多边形绘制**:在canvas上绘制这些图形,需要使用到Canvas的`beginPath()`、`moveTo()`、`lineTo()`、`arc...

    最新 Html5 中文 api

    8. **Audio/Video多媒体支持**:HTML5的`&lt;audio&gt;`和`&lt;video&gt;`元素可以直接在网页中嵌入音频和视频,无需依赖Flash等插件,提供了更简单的多媒体处理。 9. **WebSocket**:WebSocket是一种在客户端和服务器之间建立...

    WIN32编程中涉及的GDI图形/动画程序代码

    在Windows API编程中,GDI(Graphics Device Interface)是一个核心组件,用于处理设备无关的图形、文本、图像和动画。GDI允许程序员创建各种复杂的图形元素,如线条、曲线、矩形、圆以及复杂的形状,并且可以进行...

    HTML5 canvas幽灵鬼魂动画代码.zip

    总的来说,这个“HTML5 canvas幽灵鬼魂动画代码”项目展示了canvas在创建动态网页内容方面的强大能力,通过JavaScript和canvas API,我们可以创造出各种各样的交互式动画效果,不仅限于恐怖主题,也可以应用于游戏、...

    arcigs api for javascript4.0 离线包

    API提供了一系列3D对象和方法,如SceneView、PointCloudLayer、BuildingLayer等,使得构建沉浸式的3D地图应用变得简单易行。 同时,2D支持得到了进一步加强,开发者可以在同一应用中无缝切换2D和3D模式,满足不同...

    70多款html5小游戏代码案例

    在这些小游戏案例中,大部分的游戏逻辑和动画效果都是通过Canvas API实现的,例如`drawImage()`用于绘制图像,`fillRect()`绘制矩形,`arc()`绘制圆形,以及`clearRect()`清除指定区域等。 2. **Web Audio API**: ...

    jQuery圆弧动画百分比 jQuery动画百分比效果代码下载.zip

    jQuery,作为一款强大的JavaScript库,为开发者提供了丰富的API和便捷的方法,使得创建复杂的动画效果变得简单易行。 首先,让我们理解CSS在这个过程中的作用。CSS是样式表语言,用于定义HTML或XML(包括SVG、Math...

    画布绘图的源代码

    在canvas_demo中,你可能找到这些基本功能的示例代码,包括如何绘制简单的图形、线条、文本,以及如何处理颜色和渐变。这些示例可以帮助你更好地理解Canvas API的工作原理,并为你自己的项目提供灵感。 通过学习和...

    html5 canvas画布里面圆球弹跳动画效果代码

    这个代码实现了一个简单的圆球在Canvas画布上弹跳的动画效果。当球碰到画布边缘时,它的速度会在X或Y轴上反转,从而实现弹跳效果。`requestAnimationFrame`函数用于平滑地在每一帧之间绘制动画,使得动画看起来更加...

    跨年烟花代码除夕最炫烟花代码(html+js编程)

    为了让烟花看起来更自然,代码中会包含许多随机性,例如烟花的颜色、速度、方向、大小等属性都可以是随机生成的。同时,烟花的生命周期也可以看作是一个简单的粒子系统,每个烟花都是一个粒子,有自己的生命周期和...

    基于js的坐标轴画圆和简单函数的示例代码

    在这个文件中,开发者会用到Canvas的`context`对象,它提供了各种方法和属性,如`beginPath()`, `arc()`, `stroke()`, `fill()`等,用于在Canvas上画线、圆和其他形状。例如,要画一个圆,可以使用`arc()`方法,它...

    HTML5 canvas简单饼状图动画.zip

    开发者可以使用一系列绘图方法(如`fillRect`, `strokeRect`, `arc`等)在canvas上进行画线、填充形状、绘制图像等操作。 2. **饼状图**: 饼状图是一种用于展示数据比例的图表,各个扇区代表不同的数据类别,其大小...

    js前端画布实现动画小球自由落体

    在这个代码中,我们定义了一个表示小球的对象`ball`,包括它的位置、半径、初始速度和重力加速度。`draw`函数负责清除画布、绘制小球并在每次调用时更新小球的位置。当小球触碰到画布底部时,我们会让它反弹,这里...

    绘图编程代码

    例如,在Python的PIL库或JavaScript的Canvas API中,可以使用`lineTo()`函数绘制直线,通过控制起点和终点坐标来实现自由线段的绘制。 其次,**直线**是另一个基本的绘图元素。在二维坐标系中,它由两个点定义,...

    html5 canvas网页圆点气泡背景动画效果代码

    在这个“html5 canvas网页圆点气泡背景动画效果代码”中,我们将探讨如何利用Canvas API来实现一个动态的、带有圆点气泡效果的背景动画。 首先,Canvas API提供了一个二维绘图环境,可以通过JavaScript来控制。要...

    vc api打笑脸游戏

    `Ellipse`函数可以画出完美的圆形,而`Arc`则用于画弧线,模拟微笑的表情。 4. **动画效果**: 游戏可能通过定时器API(如`SetTimer`和`KillTimer`)实现笑脸的动态效果,如微笑的动画。定时器触发回调函数,更新...

    简单的HTML5圆形指针时钟代码

    在这个时钟例子中,`arc()`方法将被用来绘制圆形的钟面,而指针则通过线条或路径来表示。 描述中提到,这个时钟能够获取本地在线时间,这意味着它会实时更新。这涉及到JavaScript的时间和日期处理。JavaScript的`...

    html5简单的贪吃蛇小游戏代码

    例如,可以使用`fillRect()`或`strokeRect()`方法画出蛇的身体单元,用`beginPath()`、`moveTo()`、`lineTo()`等方法画出蛇的路径,而食物可以用小圆点表示,用`arc()`方法画出。 2. **事件处理**:JavaScript通过...

Global site tag (gtag.js) - Google Analytics