自定义View

自定义View重写构造方法和onDraw方法

MyView.java

package com.example.jrtt;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import java.util.Random;public class MyView extends View {private MyThread myThread;private Paint paint;private RectF rectF=new RectF(150,150,380,380);private int sweepAngle=0;private int sweepAngleAdd=20;private Random random=new Random();private boolean running=true;public MyView(Context context){this(context,null);}public MyView(Context context, AttributeSet attrs){super(context,attrs);//super关键字调用父类构造方法init(context,attrs);}private void init(Context context,AttributeSet attrs){paint=new Paint();paint.setTextSize(60);}@Overrideprotected void onDraw(Canvas canvas){Log.i("MyView","onDraw");if(null==myThread){myThread=new MyThread();myThread.start();}else{canvas.drawArc(rectF,0,sweepAngle,true,paint);}}private class MyThread extends Thread{@Overridepublic void run(){while(running){logic();postInvalidate();try{Thread.sleep(200);}catch(InterruptedException e){e.printStackTrace();}}}}protected void logic(){sweepAngle+=sweepAngleAdd;int r=random.nextInt(255);int g=random.nextInt(255);int b=random.nextInt(255);paint.setARGB(255,r,g,b);if(sweepAngle>=360){sweepAngle=0;}}@Overrideprotected void onDetachedFromWindow(){running=false;super.onDetachedFromWindow();}
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent">
<com.ansen.view.MyView android:background="@android:color/holo_green_dark"android:layout_width="wrap_content"android:layout_height="wrap_content"/>
</RelativeLayout>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[JavaWeb-JDBC]JDBC概念

JDBC&#xff1a; 1. 概念&#xff1a;Java DataBase Connectivity Java 数据库连接&#xff0c; Java语言操作数据库JDBC本质&#xff1a;其实是官方&#xff08;sun公司&#xff09;定义的一套操作所有关系型数据库的规则&#xff0c;即接口。各个数据库厂商去实现这套接口…

创建型模式——建造者模式

一、 实验目的与要求 1.练习使用工厂模式。设计相关的模拟场景并进行实施&#xff0c;验证模式特性&#xff0c;掌握其优缺点。 2.实验结束后&#xff0c;对相关内容进行总结。 二、实验内容 1.模式应用场景说明 Decis创建一个获取多套餐信息&#xff0c;包含A套餐&#xf…

[JavaWeb-MySQL]事务的四大特征和隔离级别

事务的四大特征&#xff1a; 1. 原子性&#xff1a;是不可分割的最小操作单位&#xff0c;要么同时成功&#xff0c;要么同时失败。2. 持久性&#xff1a;当事务提交或回滚后&#xff0c;数据库会持久化的保存数据。3. 隔离性&#xff1a;多个事务之间。相互独立。4. 一致性&am…

android studio模拟器的安装与使用

来回弄了好几遍&#xff0c;网上也都搜过下载过很多版本&#xff0c;其中夜神模拟器是真的方便&#xff0c;也好用&#xff0c;棒极了&#xff01;那么我就来分享一下&#xff1a; 第一&#xff0c;肯定是下载啦 下载链接&#xff1a;夜神模拟器官方 接着就是连接了&#xff0c…

如何训练解决问题的能力?

作为程序员&#xff0c;技术能力固然很重要&#xff0c;但平时除了提升技术能力也别忽略了其它方面的能力。你可以写一辈子代码&#xff0c;但你不能一辈子只写代码。当你的技术能力足以使你在公司站稳脚跟时&#xff0c;你可以停下来锻炼自己的管理能力&#xff0c;比如职场中…

[JavaWeb-MySQL]DCL管理用户,授权

DCL&#xff1a; * SQL分类&#xff1a;1. DDL&#xff1a;操作数据库和表2. DML&#xff1a;增删改表中数据3. DQL&#xff1a;查询表中数据4. DCL&#xff1a;管理用户&#xff0c;授权* DBA&#xff1a;数据库管理员* DCL&#xff1a;管理用户&#xff0c;授权1. 管理用户1…

PS照片换底色

因为写简历嘛&#xff0c;手边没有白色底的照片&#xff0c;就用ps换了个底色&#xff0c;记录一下&#xff0c;下次可能还要用。这里我用幂幂的照片来代替。 打开ps&#xff0c;点击文件&#xff0c;点击打开&#xff0c;找到你需要处理的照片。 -点击旁边的对象选择工具&…

小心 HttpClient 中的 FormUrlEncodeContent 的 bug

小心 HttpClient 中的 FormUrlEncodeContent 的 bugIntro最近发现活动室预约项目里的上传图片有时候会有问题&#xff0c;周末找时间测试了一下&#xff0c;发现小图片的上传没问题&#xff0c;大图片上传会有问题&#xff0c;而且异常信息还很奇怪&#xff0c;System.UriForma…

IDEA导入MySQL的jdbc驱动出现“java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver”

目录 一、一般的解决思路 1、JDBC下载链接 2、选择下载内容&#xff0c;并进行下载 3、将驱动导入java项目 二、依然导入驱动失败怎么办 当我们在idea中使用java操作mysql数据库时会出现&#xff1a; Exception in thread "main" java.lang.ClassNotFoundExce…

Android程序设计基础-设计布局之伪今日头条主界面

一、 实验目的 &#xff08;1&#xff09; 掌握Andriod Studio的基本使用方法&#xff1b; &#xff08;2&#xff09; 掌握Andriod Studio中常用的控件及其使用方法&#xff1b; 二、实验内容 &#xff08;1&#xff09;使用Android Studio编写任意一个Android程序并运行&a…

基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(一)

系列文章使用 abp cli 搭建项目给项目瘦身&#xff0c;让它跑起来完善与美化&#xff0c;Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API&#xff0c;包装返回模型再说Swagger&#xff0c;分组、描述、小绿锁接入GitHub&#xff0c;用JWT保护你的API异常处理和…

[JavaWeb]Web概念概述

web概念概述 * JavaWeb&#xff1a;* 使用Java语言开发基于互联网的项目* 软件架构&#xff1a;1. C/S: Client/Server 客户端/服务器端* 在用户本地有一个客户端程序&#xff0c;在远程有一个服务器端程序* 如&#xff1a;QQ&#xff0c;迅雷...* 优点&#xff1a;1. 用户体验…

android封装好的Color类中的常量

通过android封装好的Color类中的常量 public static final int BLACK 0xFF000000;public static final int DKGRAY 0xFF444444;public static final int GRAY 0xFF888888;public static final int LTGRAY 0xFFCCCCCC;public static final int WHITE 0xFFFFFFFF;public st…

MySql轻松入门系列——第一站 从源码角度轻松认识mysql整体框架图

一&#xff1a;背景1. 讲故事最近看各大技术社区&#xff0c;不管是知乎&#xff0c;掘金&#xff0c;博客园&#xff0c;csdn基本上看不到有小伙伴分享sqlserver类的文章&#xff0c;看样子这些年sqlserver没落了&#xff0c;已经后继无人了&#xff0c;再写sqlserver是不可能…

[JavaWeb-JDBC]JDBC_快速入门_idea jdbc连接Mysql数据库

快速入门&#xff1a; * 步骤&#xff1a;1. 导入驱动jar包 mysql-connector-java-8.0.17.jar1.复制mysql-connector-java-8.0.17.jar到项目的libs目录下2.右键-->Add As Library2. 注册驱动3. 获取数据库连接对象 Connection4. 定义sql5. 获取执行sql语句的对象 Statement6…

嫌弃俄罗斯的火箭报价太黑!马斯克自己造火箭!SpaceX首次载人发射任务成功!太牛了!...

当你仰望天空&#xff0c;可曾想象到&#xff0c;距地8公里的平流层每分钟有65架飞机在天空穿梭&#xff0c;距地20公里有太阳能激光通信无人机展翅翱翔、高空通信热气球悠闲的漂荡&#xff0c;再往上有世界各大企业的低轨宽带卫星&#xff0c;在往上是各国的若干低轨道、中轨道…

[JavaWeb-HTML]HTML标签_列表标签

列表标签&#xff1a; * 有序列表&#xff1a;* ol:* li:* 无序列表&#xff1a;* ul:* li:

Android studio 实验过程中遇到的问题之android.support.v7.app.AppCompatActivity不能使用的解决办法

android.support.v7.app.AppCompatActivity不能使用的解决办法 在构建项目时使用 android.support.v7.XX android.support.v4.XX发现在xml文件中&#xff0c;原先我最常使用的DrawerLayout变红了。同时在andriod虚拟机上运行时&#xff0c;报错 我不禁陷入了思考。在网络上冲…

ASP.NET Core 3.x API版本控制

前言一般来说需要更改我们API的时候才考虑版本控制&#xff0c;但是我觉得我们不应该等到那时候来实现它&#xff0c;我们应该有一个版本策略从我们应用程序开发时就开始制定好我们的策略&#xff0c;我们一直遵循着这个策略进行开发。我们其实可以通过多种方式进行实现我们API…

[JavaWeb-HTML]HTML标签_文本标签_练习

案列效果: 文本素材: "中关村黑马程序员训练营"是由传智播客联合中关村软件园、CSDN&#xff0c; 并委托传智播客进行教学实施的软件开发高端培训机构&#xff0c;致力于服务各大软件企业&#xff0c;解决当前软件开发技术飞速发展&#xff0c; 而企业招不到优秀人才…