`
abc20899
  • 浏览: 933060 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ANDROID画图PATH的使用

 
阅读更多
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;  
//主程序中继承自Android.view.View的 MyView类,重写 MyView的onDraw()方法,  
//一开始就会运行绘制的工作,在onDraw()中以Paint将几何图形绘制在Canvas上,  
//以 paint.setColor() 改变图形颜色、以 paint.setStyle()的设置来控制画出的的  
//图形是空心还是实心。程序的最后一段,就是直接在Canvas写上文字,随着Paint对  
//象里的属性设置,也会有不同的外观模式。
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);  
              /*画一个空心椭圆形*/ 
              canvas.drawOval(new RectF(10,220,70,250), 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的颜色*/ 
              paint.setColor(Color.BLUE);  
              /*设置paint 的style为 FILL:实心*/ 
              paint.setStyle(Paint.Style.FILL);  
              /*画一个实心圆*/ 
              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);  
              //Shader.TileMode三种模式  
              //REPEAT:沿着渐变方向循环重复  
              //CLAMP:如果在预先定义的范围外画的话,就重复边界的颜色  
              //MIRROR:与REPEAT一样都是循环重复,但这个会对称重复  
              paint.setShader(mShader);//用Shader中定义定义的颜色来话  
              
              /*画一个渐变色圆*/ 
              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);  
                 
              /*写字*/ 
              paint.setTextSize(24);  
              canvas.drawText("圆形", 240, 50, paint);  
              canvas.drawText("正方形", 240, 120, paint);  
              canvas.drawText("长方形", 240, 190, paint);  
              canvas.drawText("椭圆形", 240, 250, paint);  
              canvas.drawText("三角形", 240, 320, paint);  
              canvas.drawText("梯形", 240, 390, paint);    
         }  
    }  
}
分享到:
评论

相关推荐

    Android画图Path的使用

    在Android平台上,绘制图形是一项基本任务,而...总之,Android的Path和Paint类提供了强大的图形绘制能力,通过熟练掌握它们的使用,开发者可以创造出各种创新的UI元素和动态效果,极大地丰富了Android应用的视觉体验。

    Android 画图程序源码.rar

    Android 画图程序源码分析 在Android平台上开发一款画图程序,涉及到许多核心技术和组件。这个"Android 画图程序源码.rar"文件提供了一个实际的案例,可以帮助我们深入理解Android图形系统的工作原理,以及如何创建...

    Android画图示例集合

    这个"Android画图示例集合"项目,通过实际代码示例,将帮助开发者熟悉以上知识点,并能熟练地在Android应用中进行自定义图形绘制。在实践中不断探索和学习,你将能够创建出更多创新和吸引人的用户界面。

    看代码学Android开发系列:android画图程序源代码

    本教程将通过分析提供的“android画图程序源代码”来深入理解Android图形绘制的基本概念和技术。 首先,Android提供了多种方式来绘制图形,主要包括Canvas、Paint、Path以及Bitmap等类。Canvas是绘画的基础,它提供...

    Android 画图程序源码.zip

    在这个自动画图程序中,开发人员可能会使用`Path`对象创建复杂的形状,并利用`drawPath()`在Canvas上绘制。 颜色变化功能涉及Android的颜色处理。在Android中,颜色可以通过ARGB(Alpha, Red, Green, Blue)格式...

    Android 画图/签名

    在Android平台上,开发人员可以利用Canvas和Bitmap等组件来实现丰富的图形绘制功能,包括但不限于画图、签名等交互式操作。Canvas是Android图形系统的核心部分,它提供了在内存中的Bitmap上绘制各种形状、线条和图像...

    android 画图集合.zip

    在Android平台上,画图功能是通过Canvas类和相关的图形API实现的,这使得开发者能够创建丰富的自定义视图和交互式图形界面。本压缩包"android 画图集合.zip"包含多个示例项目,旨在帮助开发者深入理解Android图形...

    android画图板示例程序

    在Android平台上,开发一款画图板应用涉及到许多关键知识点,...综上所述,"android画图板示例程序"是一个涉及自定义View、Canvas绘图和触摸事件处理的项目,通过这些技术,开发者可以构建一个功能丰富的互动画图应用。

    android画图

    下面将详细介绍Android画图的相关知识点。 一、Canvas类 Canvas是Android图形系统的核心,它是绘制2D图形的画布。你可以将Canvas想象为一张白纸,你可以在这张纸上绘制各种图形。Canvas通常与Bitmap结合使用,...

    Android新手入门2016(16)--画图

    本教程将带你走进Android画图的世界,让你从新手快速成长为能绘制出丰富多彩图形的开发者。在2016年的这个系列教程中,我们将重点探讨如何在Android中利用Canvas和Drawable进行图形绘制。 首先,你需要了解`Canvas`...

    android画图板

    本文将详细解析"android画图板"这个主题,介绍如何在Android中实现一个基本的画线功能,并探讨两种不同的实现方法。 首先,我们要了解Android中的画布(Canvas)和画笔(Paint)概念。Canvas是Android图形系统的一...

    Android简单画图应用开发

    以上就是开发一个简单的Android画图应用所涉及的关键技术点,通过这些技术,我们可以创建一个功能丰富的画图工具,满足用户的基本需求。不过,实际开发过程中还需要考虑性能优化、用户体验等因素,以提供更优质的...

    Android 画图工具源码.zip

    《Android 画图工具源码解析》 在Android开发领域,了解并掌握画图工具的源码对于提升应用的交互性和用户体验至关重要。本篇将详细探讨"Android 画图工具源码.zip"中的核心概念、关键组件以及实现原理,帮助开发者...

    android 画图 源码

    "android 画图 源码"这个主题涉及到的是Android系统中的图形用户界面(GUI)编程,特别是Canvas和Path类的使用,它们是Android中进行图形绘制的核心组件。下面我们将详细探讨这些知识点。 首先,Canvas是Android...

    android 画图小例子

    "android 画图小例子" 涉及的是如何在Android环境中利用Canvas和相关API进行图形绘制。下面将详细介绍这个主题。 首先,Android中的画图主要通过`View`类的子类实现,特别是`SurfaceView`或自定义的`View`类。...

    安卓Android源码——画图程序源码.zip

    在安卓(Android)平台上开发应用程序时,有时我们需要创建具有用户交互功能的画图程序,让用户能够在屏幕上自由绘制。本资源“安卓Android源码——画图程序源码.zip”提供了这样一个应用的源代码,帮助开发者理解和...

    android画图总结.pdf

    ### Android画图技术详解 #### 一、概述 在Android应用开发中,图像处理是非常重要的一个环节。无论是简单的UI设计还是复杂的游戏开发,都需要用到各种各样的图像处理技术。本文将详细介绍Android画图技术的核心...

    android 画图软件源码 markers-for-android

    "markers-for-android"是一款专为Android平台设计的画图软件的源代码库,它提供了丰富的绘图功能,包括压感支持和多指触控画图。这个项目对于想要深入理解Android图形绘制、触摸事件处理以及自定义View的开发者来说...

    android画图简单示例

    这个示例项目,名为“android画图简单示例”,旨在帮助开发者理解如何利用Android SDK中的相关API来创建这样一个交互式的图形界面。下面将详细阐述实现这些功能的关键知识点。 首先,我们关注的是画图功能。在...

    android画图程序源码

    这款"android画图程序源码"应该包含实现图形绘制、颜色变换等功能的核心代码。以下是对这个程序可能涉及的关键知识点的详细解释: 1. **Android Canvas**: Android的Canvas类是用于在Bitmap上进行绘图的主要工具。...

Global site tag (gtag.js) - Google Analytics