android自定义view画图
来源:互联网 发布:印度尼西亚华人知乎 编辑:程序博客网 时间:2024/06/05 16:41
Main方法package wuhao.bwei.com.wuhao20171130;import android.graphics.Paint;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.LinearLayout;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { LinearLayout layout = (LinearLayout) findViewById(R.id.pa); Pain pp = new Pain(this); pp.setMinimumHeight(500); pp.setMinimumWidth(300); pp.invalidate(); layout.addView(pp); }}布局中导入Pain类
package wuhao.bwei.com.wuhao20171130;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.LinearGradient;import android.graphics.Paint;import android.graphics.Path;import android.graphics.RectF;import android.graphics.Shader;import android.os.Build;import android.support.annotation.Nullable;import android.support.annotation.RequiresApi;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;/** * Created by alienware on 2017/11/30. */public class Pain extends View{ float x = 100f; float y = 100f; public Pain(Context context) { super(context); } public Pain(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public Pain(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public Pain(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } protected void onDraw(Canvas canvas){ super.onDraw(canvas); Paint p = new Paint(); p.setColor(Color.RED); canvas.drawText("画圆",20,20,p); canvas.drawCircle(x,y,50,p); p.setAntiAlias(true);//设置画笔的锯齿效果。true是去除锯齿效果 canvas.drawText("画线和弧形",10,60,p); //颜色设置为黄色 p.setColor(Color.BLACK); canvas.drawLine(120,80,200,80,p);//画线 canvas.drawLine(220,80,380,160,p);//斜线 p.setStyle(Paint.Style.STROKE);//设置空心 RectF oval1=new RectF(150,20,180,40); canvas.drawArc(oval1, 180, 180, false, p);//小弧形 oval1.set(190, 20, 220, 40); canvas.drawArc(oval1, 180, 180, false, p);//小弧形 oval1.set(160, 30, 210, 60); canvas.drawArc(oval1, 0, 180, false, p);// //画矩形 canvas.drawText("画矩形",10,80,p); //设置颜色 p.setColor(Color.BLUE); //设置样式:填满 p.setStyle(Paint.Style.FILL); //canvas.drawRect(120,120,160,160,p);//正方形:左上右下 canvas.drawRect(60,90,160,200,p);//长方形 //画扇形和椭圆 canvas.drawText("画扇形和椭圆",15,300,p); /*设置渐变色 正方形颜色改变*/ Shader mShader = new LinearGradient(0,0,100,100,new int[]{Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW,Color.LTGRAY},null,Shader.TileMode.REPEAT); //渐变色设置完毕 p.setShader(mShader); RectF ova12 = new RectF(120,200,400,480); canvas.drawArc(ova12,200,130,true,p); //椭圆 ova12.set(210,100,250,130); canvas.drawOval(ova12,p); //画三角形 canvas.drawText("画三角形",10,320,p); //绘制这个三角形 Path path = new Path(); path.moveTo(80, 300);// 此点为多边形的起点 path.lineTo(120, 250); path.lineTo(80, 250); path.close(); // 使这些点构成封闭的多边形 canvas.drawPath(path, p); p.reset();//重置 p.setColor(Color.LTGRAY);// p.setStyle(Paint.Style.STROKE);//设置空心// Path path1=new Path();// path1.moveTo(180, 200);// path1.lineTo(200, 200);// path1.lineTo(210, 210);// path1.lineTo(200, 220);// path1.lineTo(180, 220);// path1.lineTo(170, 210); //path1.close();//封闭 //canvas.drawPath(path1, p); } @Override public boolean onTouchEvent(MotionEvent event) { x = event.getX(); y = event.getY(); invalidate(); return true; }}
阅读全文
0 0
- android自定义view画图
- Android View自定义控件画图
- Android 自定义View 画图—圆
- 自定义view画图
- 自定义view画图
- 自定义View画图形
- 自定义view画图
- Android 自定义 View之画图的五个元素组件
- Android自定义view 画图——圆环进度条
- android view画图
- android view画图笔记
- 自定义 view<简单画图 圆形>
- 安卓自定义View之画图
- android中 自定义两个View进行画图,如何让其各自刷新重绘
- 从0到1Android自定义View(三)画图的五个元素组件
- Android View---自定义View
- Android View---自定义View
- android 继承View 使用 Canvas画图
- js中json字符串解析
- 【Scikit-Learn 中文文档】神经网络模型(无监督)- 无监督学习
- 用命令行 将 Java 文件 打成 Jar 包
- Java的算数运算符、关系运算符、逻辑运算符、位运算符
- 邻接表(模板)
- android自定义view画图
- appium测试环境搭建与设置介绍
- 【Scikit-Learn 中文文档】交叉验证
- 常见进程调度算法总结
- 【Scikit-Learn 中文文档】优化估计器的超参数
- HTTP——超文本传输协议
- java成长之路必备宝典
- C++与Java之RSA签名与验签
- 创建自己的第一个小程序