zoukankan      html  css  js  c++  java
  • 自定义各种图形

      1 MainActivity:
      2 package com.example.lainxidraw;
      3 
      4 import android.os.Bundle;
      5 import android.app.Activity;
      6 import android.content.Intent;
      7 import android.view.Menu;
      8 
      9 public class MainActivity extends Activity {
     10  public static String name1;
     11  @Override
     12  protected void onCreate(Bundle savedInstanceState) {
     13   super.onCreate(savedInstanceState);
     14   Intent intent = getIntent();
     15   name1 = intent.getStringExtra("aaa");
     16   setContentView(R.layout.activity_main);
     17  }
     18 
     19 }
     20 
     21 ShouActivity:
     22 package com.example.lainxidraw;
     23 
     24 import android.os.Bundle;
     25 import android.app.Activity;
     26 import android.content.Intent;
     27 import android.view.View;
     28 import android.view.View.OnClickListener;
     29 import android.widget.Button;
     30 
     31 public class ShouActivity extends Activity {
     32  private Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8;
     33  @Override
     34  protected void onCreate(Bundle savedInstanceState) {
     35   super.onCreate(savedInstanceState);
     36   setContentView(R.layout.activity_shou);
     37   btn1 = (Button) findViewById(R.id.btn1);
     38   btn2 = (Button) findViewById(R.id.btn2);
     39   btn3 = (Button) findViewById(R.id.btn3);
     40   btn4 = (Button) findViewById(R.id.btn4);
     41   btn5 = (Button) findViewById(R.id.btn5);
     42   btn6 = (Button) findViewById(R.id.btn6);
     43   btn7 = (Button) findViewById(R.id.btn7);
     44   btn8 = (Button) findViewById(R.id.btn8);
     45   btn1.setOnClickListener(l);
     46   btn2.setOnClickListener(l);
     47   btn3.setOnClickListener(l);
     48   btn4.setOnClickListener(l);
     49   btn5.setOnClickListener(l);
     50   btn6.setOnClickListener(l);
     51   btn7.setOnClickListener(l);
     52   btn8.setOnClickListener(l);
     53  }
     54  OnClickListener l = new OnClickListener() {
     55   @Override
     56   public void onClick(View arg0) {
     57    // TODO Auto-generated method stub
     58    Intent intent = new Intent(ShouActivity.this,MainActivity.class);
     59    switch (arg0.getId()) {
     60    case R.id.btn1:
     61     intent.putExtra("aaa", btn1.getText());
     62     startActivity(intent);
     63     break;
     64    case R.id.btn2:
     65     intent.putExtra("aaa", btn2.getText());
     66     startActivity(intent);
     67     break;
     68    case R.id.btn3:
     69     intent.putExtra("aaa", btn3.getText());
     70     startActivity(intent);
     71     break;
     72    case R.id.btn4:
     73     intent.putExtra("aaa", btn4.getText());
     74     startActivity(intent);
     75     break;
     76    case R.id.btn5:
     77     intent.putExtra("aaa", btn5.getText());
     78     startActivity(intent);
     79     break;
     80    case R.id.btn6:
     81     intent.putExtra("aaa", btn6.getText());
     82     startActivity(intent);
     83     break;
     84    case R.id.btn7:
     85     intent.putExtra("aaa", btn7.getText());
     86     startActivity(intent);
     87     break;
     88    case R.id.btn8:
     89     intent.putExtra("aaa", btn8.getText());
     90     startActivity(intent);
     91     break;
     92    }
     93   }
     94  };
     95 }
     96 MyView:
     97 package com.example.view;
     98 
     99 import com.example.lainxidraw.MainActivity;
    100 
    101 import android.content.Context;
    102 import android.graphics.Canvas;
    103 import android.graphics.Color;
    104 import android.graphics.LinearGradient;
    105 import android.graphics.Paint;
    106 import android.graphics.Path;
    107 import android.graphics.RectF;
    108 import android.graphics.Shader;
    109 import android.util.AttributeSet;
    110 import android.util.Log;
    111 
    112 public class MyView extends View{
    113  private Paint p;
    114  public String name = MainActivity.name1;
    115  public View(Context context, AttributeSet attrs, int defStyle) {
    116   super(context, attrs, defStyle);
    117   // TODO Auto-generated constructor stub
    118  }
    119  public View(Context context, AttributeSet attrs) {
    120   super(context, attrs);
    121   // TODO Auto-generated constructor stub
    122  }
    123  public View(Context context) {
    124   super(context);
    125   // TODO Auto-generated constructor stub
    126  }
    127  @Override
    128  protected void onDraw(Canvas canvas) {
    129   // TODO Auto-generated method stub
    130   super.onDraw(canvas);
    131   Log.i("aaa", name);
    132   draw(name,canvas);
    133  }
    134  public void draw(String name,Canvas canvas){
    135   p = new Paint();
    136   if(name.equals("画圆")){
    137    p.setColor(Color.RED);
    138    canvas.drawText("画圆:", 10, 20, p);
    139    //x.y.直径.画笔
    140    canvas.drawCircle(60, 20, 10, p);
    141    p.setAntiAlias(true);
    142    canvas.drawCircle(120, 20, 20, p);
    143   }else if(name.equals("画线及弧形")){
    144    canvas.drawText("画线及弧线:", 10, 60, p);  
    145    p.setColor(Color.GREEN);
    146    //起始X.Y.结束X.Y.画笔
    147    canvas.drawLine(60, 40, 150, 20, p);
    148    canvas.drawLine(110, 40, 190, 80, p);
    149    
    150    p.setStyle(Paint.Style.STROKE);
    151    RectF oval1=new RectF(150,20,180,40);
    152    canvas.drawArc(oval1, 180, 180, false, p);
    153    oval1.set(190, 20, 220, 40);
    154    canvas.drawArc(oval1, 180, 180, false, p);
    155    oval1.set(160, 30, 210, 60);
    156    canvas.drawArc(oval1, 0, 180, false, p);
    157   }else if(name.equals("画矩形")){
    158    canvas.drawText("画矩形:", 10, 80, p);  
    159    p.setColor(Color.GRAY);
    160    p.setStyle(Paint.Style.FILL);
    161    //X-左,Y-上,X-右,Y-下距离
    162    canvas.drawRect(60, 60, 80, 80, p);
    163    canvas.drawRect(60, 90, 160, 150, p);
    164   }else if(name.equals("画扇形和椭圆")){
    165    canvas.drawText("画扇形和椭圆:", 10, 120, p);  
    166    Shader mShader = new LinearGradient(0, 0, 100, 100,new int[]{ Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW,Color.LTGRAY }, null, Shader.TileMode.REPEAT);
    167    p.setShader(mShader);  
    168    RectF oval2 = new RectF(60, 100, 200, 240);
    169    canvas.drawArc(oval2, 200, 130, true, p);
    170    oval2.set(210,100,250,130);  
    171    canvas.drawOval(oval2, p);
    172   }else if(name.equals("画三角形")){
    173    canvas.drawText("画三角形:", 10, 200, p);
    174    Path path = new Path();
    175    path.moveTo(80, 200);
    176    path.lineTo(120, 250);
    177    path.lineTo(80, 250);
    178    path.close();
    179    canvas.drawPath(path, p);
    180    p.reset();
    181    //设置空心
    182    p.setStyle(Paint.Style.STROKE);
    183    Path path2 = new Path();
    184    path2.moveTo(180, 200);
    185    path2.lineTo(200, 200);
    186    path2.lineTo(210, 210);
    187    path2.lineTo(200, 220);
    188    path2.lineTo(180, 220);
    189    path2.lineTo(170, 210);
    190    path2.close();
    191    canvas.drawPath(path2, p);
    192   }else if(name.equals("画圆角矩形")){
    193    //充满
    194    p.setStyle(Paint.Style.FILL);
    195    p.setColor(Color.LTGRAY);
    196    p.setAntiAlias(true);
    197    canvas.drawText("画园角矩形", 10, 260, p);
    198    RectF rectF = new RectF(80,260,200,300);
    199    canvas.drawRoundRect(rectF, 80, 80, p);
    200   }else if(name.equals("画贝赛尔曲线")){
    201    p.reset();
    202    p.setStyle(Paint.Style.STROKE);
    203    p.setColor(Color.GREEN);
    204    canvas.drawText("画贝塞尔曲线", 10, 260, p);
    205    Path path3 = new Path();
    206    path3.moveTo(100, 320);
    207    path3.quadTo(150, 310, 170, 400);
    208    canvas.drawPath(path3, p);
    209   }else if(name.equals("画点")){
    210    p.setStyle(Paint.Style.FILL);
    211    canvas.drawText("画点", 10, 390, p);
    212    canvas.drawPoint(69, 390, p);
    213    canvas.drawPoints(new float[]{60,400,65,400,70,400}, p);
    214   }
    215  }
    216 }
  • 相关阅读:
    Elastic 技术栈之快速入门
    JDK8 指南(译)
    Intellij IDEA 使用小结
    面向对象1
    函数总结
    Python中i = i + 1与i + = 1的区别
    python中变量的交换
    python的数据类型的有序无序
    对列表里的字典按年龄从小到大排序
    centos7安装python3
  • 原文地址:https://www.cnblogs.com/pastor/p/5156721.html
Copyright © 2011-2022 走看看