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();
}
}
}
分享到:
相关推荐
利用C++与ArcScene结合的动画示例
韩鹏的ARCENGINE 源韩鹏的ARCENGINE 源代码韩鹏的ARCENGINE 源代码代码
代码素材 Arc Curve Outside代码素材 Arc Curve Outside代码素材 Arc Curve Outside代码素材 Arc Curve Outside代码素材 Arc Curve Outside代码素材 Arc Curve Outside代码素材 Arc Curve Outside代码素材 Arc Curve...
ArcEngine中实现鹰眼图程序的详细代码
ArcEngine开发常用代码,一般功能里面都有。
刚学AE的人肯定想知道怎么用ArcEngine生成点线面,附上自编的生成点线面的程序,环境是visual studio2010
韩鹏的ARCEN韩韩鹏的ARCENGINE 源代码鹏的ARCENGINE 源代码GINE 源代码
ArcGis-10.1 读取 天地图 JS API 接口工具 20130425
很不错的三维开发资源 适合初学者学习学ArcEngine 三维编辑开发
开发环境:C#+ArcEngine10.2+vs2010 《GIS程序设计教程》主要介绍了组件式GIS开发技术,重点是利用ArcGISEngine开发组件库,在.Net环境下利用C#语言进行GIS程序开发。全书由浅人深,从组件式GIS基本概念入手,介绍...
arcengine 中添加text的代码
ArcGlobe,ArcScene的飞行的代码一样!!!
ArcScene制作简单三维校园, ArcScene制作简单三维校园
是从网上整理的关于ArcEngine的代码,里边有多个例子。有源码和相应的说明。
arcengine地图的基本操作代码与查询分析代码 vb.net
ArcEngine代码GP邻域分析之焦点
,ArcEngine椭球面积计算代码,基于ArcGIS写的多边形椭球面积计算
ArcEngine地理信息系统开发入门到精通第二版 光盘源代码
ae(ArcEngine) java swing开发入门系列附属代码,真的,凑够字数