`
xubingok
  • 浏览: 130175 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android画各种几何图形

 
阅读更多
继承自Android.view.View的 MyView类,重写 MyView的onDraw()方法,一开始就会运行绘制的工作,在onDraw()中以Paint将几何图形绘制在Canvas上,以 paint.setColor() 改变图形颜色、以 paint.setStyle()的设置来控制画出的的图形是空心还是实心。程序的最后一段,就是直接在Canvas写上文字,随着Paint对象里的属性设置,也会有不同的外观模式。


package com.graphices; 
 
import  android.app.Activity;
import android.os.Bundle;
import  android.view.View;
import android.content.Context;
import  android.graphics.Canvas;
import android.graphics.Color;
import  android.graphics.Paint;
import android.graphics.RectF;
import  android.graphics.Path;
import android.graphics.Shader;
import  android.graphics.LinearGradient;
public class GraphicesActivity  extends Activity {
    /** Called when the activity is first created.  */
    @Override
    public void onCreate(Bundle  savedInstanceState) {
        super.onCreate(savedInstanceState);
        /*设置ContentView为自定义的MyVieW*/
        MyView myView=new  MyView(this);
        setContentView(myView);
    }
    /* 自定义继承View 的MyView*/
private class MyView extends View
{
     public  MyView(Context context){
        super(context) ;
     }
      /*重写onDraw()*/
     @Override
     protected void onDraw(Canvas  canvas)
     {   
         super.onDraw(canvas);
         /*设置背景为白色*/
         canvas.drawColor(Color.WHITE);
          Paint  paint=new Paint();
          /*去锯齿*/
           paint.setAntiAlias(true);
          /*设置paint的颜色*/
           paint.setColor(Color.RED);
          /*设置paint的 style 为STROKE:空心*/
          paint.setStyle(Paint.Style.STROKE);
          /*设置paint的外框宽度*/
          paint.setStrokeWidth(3);
          /*画一个空心圆形*/
          canvas.drawCircle(40, 40, 30, paint);
          /*画一个空心正方形*/
          canvas.drawRect(10, 90, 70, 150, paint);
          /*画一个空心长方形*/
          canvas.drawRect(10, 170, 70,200, paint);
           /*画一个空心椭圆形*/
          RectF re=new RectF(10,220,70,250);
          canvas.drawOval(re, paint);
          /*画一个空心三角形*/
           Path path=new Path();
          path.moveTo(10, 330);
           path.lineTo(70,330);
          path.lineTo(40,270);
           path.close();
          canvas.drawPath(path, paint);
          /* 画一个空心梯形*/
          Path path1=new Path();
           path1.moveTo(10, 410);
          path1.lineTo(70,410);
           path1.lineTo(55,350);
          path1.lineTo(25, 350);
           path1.close();
          canvas.drawPath(path1, paint);
          
          /*设置paint 的style为 FILL:实心*/
           paint.setStyle(Paint.Style.FILL);
          /*设置paint的颜色*/
          paint.setColor(Color.BLUE);
          /*画一个实心圆*/
           canvas.drawCircle(120,40,30, paint);
          /*画一个实心正方形*/
          canvas.drawRect(90, 90, 150, 150, paint);
          /*画一个实心长方形*/
          canvas.drawRect(90, 170, 150,200, paint);
          /*画一个实心椭圆*/
          RectF re2=new RectF(90,220,150,250);
           canvas.drawOval(re2, paint);
          /*画一个实心三角形*/
          Path  path2=new Path();
          path2.moveTo(90, 330);
           path2.lineTo(150,330);
          path2.lineTo(120,270);
           path2.close();
          canvas.drawPath(path2, paint);
           /*画一个实心梯形*/
          Path path3=new Path();
           path3.moveTo(90, 410);
          path3.lineTo(150,410);
           path3.lineTo(135,350);
          path3.lineTo(105, 350);
          path3.close();
          canvas.drawPath(path3, paint);
          /*设置渐变色*/
          Shader mShader=new LinearGradient(0,0,100,100,
                  new  int[]{Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW},
                  null,Shader.TileMode.REPEAT);
          paint.setShader(mShader);
        
          /*画一个渐变色圆*/
           canvas.drawCircle(200,40,30, paint);
          /*画一个渐变色正方形*/
          canvas.drawRect(170, 90, 230, 150, paint);
          /*画一个渐变色长方形*/
          canvas.drawRect(170, 170, 230,200, paint);
          /*画一个渐变色椭圆*/
          RectF re3=new RectF(170,220,230,250);
          canvas.drawOval(re3, paint);
          /*画一个渐变色三角形*/
          Path path4=new Path();
          path4.moveTo(170,330);
          path4.lineTo(230,330);
          path4.lineTo(200,270);
          path4.close();
          canvas.drawPath(path4, paint);
          /*画一个渐变色梯形*/
          Path path5=new Path();
           path5.moveTo(170, 410);
          path5.lineTo(230,410);
          path5.lineTo(215,350);
          path5.lineTo(185, 350);
          path5.close();
          canvas.drawPath(path5, paint);
        
			/*画扇形*/
				
			canvas.drawArc(new RectF(0,0,50,50), 0, 60, true, mPaint);
          /*写字*/
          paint.setTextSize(24);
           canvas.drawText(getResources().getString(R.string.str_text1), 240, 50,  paint);
           canvas.drawText(getResources().getString(R.string.str_text2), 240, 120,  paint);
           canvas.drawText(getResources().getString(R.string.str_text3), 240, 190,  paint);
           canvas.drawText(getResources().getString(R.string.str_text4), 240, 250,  paint);
           canvas.drawText(getResources().getString(R.string.str_text5), 240, 320,  paint);
           canvas.drawText(getResources().getString(R.string.str_text6), 240, 390,  paint);  
     }
}
}
0
0
分享到:
评论

相关推荐

    android 画各种图形

    本主题主要探讨如何在Android平台上利用Canvas类来绘制各种几何图形,如立方体、圆柱体、三角形、矩形、圆形以及直线。 首先,Android中的图形绘制主要依赖于`Canvas`类,它是Android图形系统的核心组成部分。`...

    简单的几何图形识别程序源代码

    在本压缩包中,我们拥有一个关于几何图形识别的源代码项目。这个项目分为两个主要部分:一个是生成动态链接库(DLL),另一个是基于MFC(Microsoft Foundation Classes)的简单对话框应用程序。这两个部分共同作用,...

    Android-Android自定义View之几何图形绘制

    本主题聚焦于“Android自定义View之几何图形绘制”,特别是如何利用Android的Canvas API来构建维度图表,如模仿京东白条个人信用评分的维普图。下面将详细介绍这个过程中的关键知识点。 首先,理解Android的View类...

    android 几何图形的绘制

    这篇博文将带你深入了解如何在Android中绘制各种几何图形,并提供了一个实践示例。以下是对这个主题的详细解析: 首先,Android提供了`Canvas`类,它是用于进行图形绘制的核心组件。通过`Canvas`,开发者可以画线、...

    Android利用canvas画各种图形源码下载

    - **Canvas**:在Android中,Canvas是一个画布,我们可以在这个画布上执行各种绘图操作,如画线、画圆、画矩形、填充颜色等。Canvas提供了丰富的API来支持图形绘制。 - **Bitmap**:通常,我们会在Bitmap对象上...

    Android自定义View绘制几何图形

    本篇文章将详细讲解如何在Android中自定义View来绘制几何图形,以矩形为例,结合提供的`MyCanvas`示例进行解析。 首先,要创建一个自定义View,我们需要继承`View`或`ViewGroup`类。在这个例子中,我们将从`View`类...

    Android OpenGL ES 绘制立方体 球体 圆柱 等几何形状

    Android OpenGL ES 提供了一个接口,让开发者能够利用硬件加速的图形处理能力,来绘制出立方体、球体、圆柱等几何形状。在这个场景中,我们看到描述中提到了几个关键的元素:几何形状类和renderer类。 1. **几何...

    自定义控件二: Paint Canvar 画几何图形

    在`onDraw()`方法中,我们可以调用`Canvas`的各种方法来绘制几何图形。例如,绘制一个红色的矩形: ```java @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawRect(10, 10...

    Android中绘制常见的几何图形任务要求.pdf

    通过自定义视图,开发者可以绘制出各种几何图形,如三角形、圆形和矩形等,以满足特定的设计需求。本文将深入探讨如何在Android中利用Canvas对象进行几何图形的绘制。 首先,Android中的自定义视图通常继承自`View`...

    《android Graphics(一):基本图形绘制---几何形状、路径及文本》对应源码

    博客《android Graphics(一):基本图形绘制---几何形状、路径及文本》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/38875149

    android各种图形画图

    在Android平台上,开发人员可以利用丰富的图形库和API来创建各种各样的图形,包括2D、3D以及动态画图。这些技术可以帮助我们构建出交互性强、视觉效果丰富的应用程序。以下是一些关于Android图形画图的关键知识点: ...

    Android简单画图应用开发

    可以提供预设的几何图形按钮,如圆形、正方形等。点击这些按钮后,可以在`Canvas`上使用对应的`Path`对象绘制这些形状。例如,`addCircle()`和`addRect()`方法可以用于绘制圆和矩形。 6. **实虚线切换**: `Paint...

    绘制几何图形

    在安卓平台上,开发人员可以利用Android SDK中的Canvas类来实现绘制几何图形的功能。这个过程涉及到图形学的基本概念,以及Android视图系统的工作原理。Canvas是Android中用于在Bitmap上进行绘图的核心对象,它可以...

    android树干开花动画

    它不仅展示了Android平台上的图形渲染能力,也为用户提供了视觉上的享受。下面将详细介绍这个程序的核心知识点。 首先,我们要了解分形。分形是一种自相似的几何形状,它在不同尺度上重复出现,常用于创建自然界的...

    android绘制几何图形的实例代码

    这篇代码提供了一个详细的 Android 绘制几何图形的示例代码,展示了如何使用 Canvas 和 Paint 对象来绘制各种几何图形,包括圆形、正方形、矩形、圆角矩形、椭圆、多边形等。同时,代码中也展示了如何使用 Path 对象...

    Android中绘制常见的几何图形的代码清单.pdf

    总之,通过自定义`View`类并重写`onDraw()`方法,开发者可以在Android应用中自由绘制各种几何图形,结合事件处理和布局管理,可以创建出具有丰富视觉效果和交互性的界面。通过不断实践和优化,可以提升应用的用户...

    Android画板

    在Android平台上,开发一个画板应用是一个常见的任务...通过理解以上知识点,开发者可以构建一个功能丰富的Android画板应用,不仅支持基本图形的绘制,还能提供背景图片选择和其他个性化功能,满足用户的各种创意需求。

    android画直线、箭头、折线(平移、定义点击事件)源码

    在Android开发中,有时我们需要在屏幕上绘制自定义图形,如直线、箭头和折线,以实现各种交互式用户界面。本示例源码提供了一种方法,通过使用`Path`类来绘制这些图形,并实现了图形的平移以及定义点击事件。`Path`...

    Android开发实现各种图形绘制功能示例

    在Android开发中,实现各种图形绘制是一项常见的任务,这通常涉及到自定义View的使用。本文主要探讨了如何在Android平台上通过自定义View类来绘制不同类型的图形,包括Bezier曲线、直线、椭圆和矩形。 首先,为了...

Global site tag (gtag.js) - Google Analytics