Android自定义控件的步骤
作者:pigdreams 发布时间:2023-03-24 00:14:03
标签:android,自定义,控件
学习初衷:在工作实际开发过程中,原有的安卓控件已不能满足实际的功能需求,而且有些应用还需要一些独特的展示效果,这时就需要自定义控件来定制控件去满足我们的需求了。
自定义控件的步骤
步骤一:首先要新建一个类CustomView继承自View
public class CustomView extends View{}
步骤二:添加构造器,用的是有AttributeSet参数的那个构造方法
public CustomView(Context context,AttributeSet attrs){
//Attribute属性,布局文件里设置的自定义属性
//attrs必须传给父类,好让父类知道具体要绘制的参数
super(context,attrs);
}
步骤三:画界面,重写onDraw()方法
@Override
protected void onDraw(Canvas canvas){
//画背景,新建一个画笔
Paint pain=new Paint();
paint.setTextSize(48);
paint.setColor(Color.RED);
//创建矩形,这时需要一个矩形的宽度与高度,viewWidth,viewHeight的值通过下面步骤得到
Rect rect=new Rect(0,0,viewWidth,viewHeight);
//绘制一个矩形,参数是矩形对象与画笔对象
canvas.drawRect(rect,paint);
}
步骤四:获得一个界面的宽度与高度
int viewHeight,viewWidth;
@Override
protected void onSizeChanged(int w,int h,int oldw,int oldh){
//当界面改变时,即切屏时当前的宽度与高度
super.onSizeChanged(w,h,oldw,oldh);
viewHeight=h;
viewWidth=w;
}
最后得到的是一个红色背景的图
来源:https://blog.csdn.net/pigdreams/article/details/52438568


猜你喜欢
- java对字符串进行utf-8编码我们在调用第三方 API 时,常常会被要求用到路径变量,而路径变量一般都是 utf-8 编码的,因此需要对
- Maven导入thymeleaf依赖飘红1、运行环境操作系统:win10jdk版本:1.8idea版本:2020.1maven版本:3.3.
- 最近面试时,面试官问了一个列表倒计时效果如何实现,现在记录一下。运行效果图实现思路实现方法主要有两个:1.为每个开始倒计时的item启动一个
- 前言我们可能听过C语言中的传值和传指针,在其他语言中,也有传引用一说,那么他们到底有什么区别呢?如果你还不能准确地分辨,就该好好了解一下了。
- 详解json string转换为java bean及实例代码pom中添加如下两个库:<dependency> <
- 本文实例讲述了C#使用HtmlAgilityPack抓取糗事百科内容的方法。分享给大家供大家参考。具体实现方法如下:Console.Writ
- 手头项目需要抓取一个用js渲染出来的网站中的数据。使用常用的httpclient抓回来的页面是没有数据。上网百度了一下,大家推荐的方案是使用
- dll的编写,首先是打开VS新建一个C++的控制台程序,下一步后选择dll以及空文档即可。然后就是添加一个类添加一个方法。方法排头固定格式
- 本文实例讲述了Android编程实现等比例显示图片的方法。分享给大家供大家参考,具体如下:在android中,由于密度的影响,如果想得到图片
- 本文实例讲述了C#精确计算年龄的方法。分享给大家供大家参考。具体如下:该源码在vs2010测试通过using System;using Sy
- 一、内部存储内部存储,位于data/data/包名/路径下是否需要用户权限:否是否能被其他应用访问:否卸载应用数据是否被删除:是内部存储控件
- 一.前言RabbitMQ的TTL全称为Time-To-Live,表示的是消息的有效期。消息如果在队列中一直没有被消费并且存在时间超过了TTL
- Android 中View.onDraw(Canvas canvas)的使用方法View通过View.onDraw(Canvas canva
- 前言我通常是不太关心代码的具体实现的,因为我的开发语言很杂,倾向于一些最简单通用的方式去解决。今儿不小心在群里看到一位朋友发了下面的java
- 半藏商城中会有一些用户提交了订单但是一直没有支付的情况,之前我是通过quartz定时任务每天的5点扫描未支付订单然后读取用户的邮箱地址发送邮
- 1 * * 是Spring中的概念,和过滤器类似,可以对用户请求进行拦截过滤处理。但是相对于过滤器而言, * 要的控制更加的细节, *
- springboot项目启动,初始化方法加载参数今天我看到项目中用到了 @PostConstruct 这个注解,之前没看到过,特地查了一下,
- 本文实例讲述了C#实现生成mac地址与IP地址注册码的两种方法,分享给大家供大家参考之用。具体方法如下:方法一:using System;u
- 前言这是上周在开发 C# 中使用 Proxy 代理时开发的一些思考和实践。主要需求是这样的,用户可以配置每次请求是否需要代理,用户可以配置
- 1、前言最近在用Kotlin+Spring Boot写一个后端项目,实体类习惯性地用了Kotlin中的data class,但是Spring