MainActivity

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
}

自定义代码

Zidingy

public class Zidingy extends View {private Paint mPaint;Context mContext;public Zidingy(Context context) {super(context);}public Zidingy(Context context, AttributeSet attrs) {super(context, attrs);}public Zidingy(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);this.mContext=context;}/*测量*/@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);}/*绘制*/@Overrideprotected void onDraw(Canvas canvas) {/*画图*//*初始化画笔 文字*/super.onDraw(canvas);Paint pa = new Paint();/*圆*/int we=canvas.getWidth()/2;int he=canvas.getHeight()/2;canvas.drawColor(Color.WHITE);pa.setColor(Color.RED);canvas.drawCircle(we,he,200,pa);pa.setColor(Color.WHITE);canvas.drawCircle(we,he,150,pa);pa.setColor(Color.YELLOW);canvas.drawCircle(we,he,100,pa);pa.setColor(Color.BLUE);canvas.drawText("武晓瑞",we-17,he,pa);//-------------------------------------------------------------------// 创建画笔(正方形)Paint p = new Paint();//设置实心p.setStyle(Paint.Style.FILL);// 设置红色p.setColor(Color.BLACK);// 设置画笔的锯齿效果p.setAntiAlias(true);//绘制
//        canvas.drawRect(50, 100, 300, 300, p);//(左、上、右、下)canvas.drawRect(10,150,300,300,p);//        canvas.drawText("我是你的小可爱",wi-40,hi,pa);//-------------------------------------------------------------------/*三角形*/Paint p1 = new Paint();p1.setColor(Color.BLACK);//实例化路径Path path = new Path();path.moveTo(80, 200);// 此点为多边形的起点path.lineTo(120, 250);path.lineTo(80, 250);path.close(); // 使这些点构成封闭的多边形canvas.drawPath(path, p1);//-------------------------------------------------------------------/*扇形——SectorActivity*/// 创建画笔Paint p2 = new Paint();p2.setColor(Color.RED);RectF rectF = new RectF(60, 100, 200, 240);canvas.drawArc(rectF, 200, 130, true, p2);//-------------------------------------------------------------------/*椭圆——OvalActivity*/// 创建画笔Paint p3 = new Paint();p3.setColor(Color.GREEN);RectF rectF1 = new RectF(60, 100, 200, 240);rectF1.set(210,100,250,130);canvas.drawOval(rectF1, p3);}/*定位*/@Overrideprotected void onLayout(boolean changed, int left, int top, int right, int bottom) {super.onLayout(changed, left, top, right, bottom);}/*监听事件*/@Overridepublic boolean onTouchEvent(MotionEvent event) {return super.onTouchEvent(event);}public Zidingy(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {super(context, attrs, defStyleAttr, defStyleRes);}
}

布局代码

xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.bwie.test.huayuan.MainActivity"><com.bwie.test.huayuan.Zidingy
        android:layout_width="wrap_content"android:layout_height="wrap_content" />
</RelativeLayout>

自定义属性(里面参数自行修改)

<?xml version="1.0" encoding="utf-8"?>
<resources><declare-styleable name="PercentageRing"><attr name="radius" format="integer"/><attr name="circleBackground" format="color"/><attr name="ringColor" format="color"/><attr name="textColor" format = "color"/></declare-styleable>
</resources>

Android studio 继承view 画笔画圆、画方形、画三角形、画扇形、画椭圆相关推荐

  1. android studio 继承关系 快捷键,Android Studio快捷键

    快捷键,加粗的是经常会使用的描述 Ctrl+E打开最近操作的文件 Ctrl+Z撤销 Ctrl+Shift+Z重做(在Eclipse中使用的是Ctrl+Y) Ctr+Y删除该行(Eclipse中的删除该 ...

  2. 新版Android Studio Logcat view使用简明教程

    从Android Studio Dophin开始,Android Studio中的默认展示了新版的logcat.新版的logcat色彩上是更加的好看了,不同的tag会有不同的颜色,不同level等级的 ...

  3. android studio 显示view树_Android 沉浸式解析和轮子使用

    文 | 黑羽 on 移动电商 前言 我们先一起来回顾一下实现沉浸式状态栏的一般套路.在 Android 上,关于对 StatusBar(状态栏)的操作,一直都在不断改善,并且表现越来越好,在 Andr ...

  4. android studio 显示view树_Android手势分发和嵌套滚动机制

    前言   对于一个Android开发者而言,要开发一个APP你必须要了解事件分发,而要开发一个优秀的APP你就必须要理解嵌套滚动.   在Android的开发体系里面,手势体系是一块非常重要的内容.从 ...

  5. Android Studio 自定义View命名空间报错的解决方法

    在界面中引用自定义View时命名空间出现错误: 搜索了下,发现是AndroidStudio的gradle的脚本造成的,解析如下: 在eclipse中如果要使用你自定义的属性 是不能用res-auto的 ...

  6. python怎么用turtle画圆_在Python中用turtle函数画同心圆

    用turtle函数画空心圆 turtle.circle是从下方开始画圆的,所以要画同心圆的话,每一次都要将画笔移动到下一个圆的底部位置. 画笔的坐标默认在0,0,就以它为圆心. 因为turtle画圆的 ...

  7. svg制作画笔画直线

    svg制作画笔画直线 使用SVG的line标签 制作画笔画直线 下面来看详细的代码: svg_pen.html svg_pen.js

  8. android自定义进度条百分比跟着走,Android studio圆形进度条 百分数跟随变化

    本文实例为大家分享了Android studio圆形进度条展示的具体代码,供大家参考,具体内容如下 MainActivity import android.support.v7.app.AppComp ...

  9. Android studio .9图片造成的错误总结

    前言,今天早晨遇到一个很奇葩的问题,导致我花费了很长的时间来解决.从eclipse 项目里复制过来4张.9图片,粘贴到android studio 项目里, 一运行发现报错,开始是 找不到这几张.9图 ...

最新文章

  1. 【TensorFlow2.0】(1) tensor数据类型,类型转换
  2. Java中的简单浮点数类型float和double不能够进行精确运算
  3. [Security] Automatically adding CSRF tokens to ajax calls when using jQuery--转
  4. 编译Android VNC Server
  5. 销毁Bean的基本操作有哪些?
  6. 腾讯视频视频下载_如何下载腾讯视频
  7. 不能bostype没有元数据异常_EAS BOS 开发问题集锦
  8. GIS制图人员的自我修养(2)--制图意识
  9. [zz]Win8应用商店管理小工具
  10. 18.2.28阿里前端实习生内推面补坑
  11. 红绿3d眼镜与红蓝3d眼镜区别_佩极定制眼镜青少年3D打印定制系列全新发布
  12. Leetcode804.Unique Morse Code Words唯一摩尔斯密码词
  13. ZTD 简单做十个好习惯总结
  14. 解决问题:Consider defining a bean of type ‘com.xxx.mapper.xxxMapper‘ in your configuration.
  15. firefox装在linux_在 Linux 中安装 Firefox
  16. 如何从TI官网下载芯片并生成库到Altium Designer
  17. 群晖服务器+微信同步,群晖服务器 云同步
  18. 2021机械高考caxa技能考试成绩查询,技能查成绩
  19. 生活哲理故事系列之六(转贴)
  20. 湖南计算机本科,湖南搞计算机科学与技术的本科有哪些?

热门文章

  1. mysql时间戳diff函数_「timestampdiff」MySQL函数---TIMESTAMPDIFF - seo实验室
  2. archlinux安装mysql_Arch Linux 安装 MySQL 8.0
  3. 移位运算符(详细介绍)
  4. laravel 资源篇
  5. WPF中使用Windows.Controls.Ribbon创建一个简单画板
  6. C语言long和float哪个范围大,float和long的数据范围问题
  7. 低延迟垃圾回收器ZGC
  8. linux系统sudo命令详解
  9. VR—颠覆传统医学影像设备教学模式
  10. 美图秀秀专利---偏色检测算法研究