Android自定义控件的步骤

作者:pigdreams 时间:2023-03-24 00:14:03 

学习初衷:在工作实际开发过程中,原有的安卓控件已不能满足实际的功能需求,而且有些应用还需要一些独特的展示效果,这时就需要自定义控件来定制控件去满足我们的需求了。

自定义控件的步骤

  • 步骤一:首先要新建一个类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

标签:android,自定义,控件
0
投稿

猜你喜欢

  • java和Spring中观察者模式的应用详解

    2023-04-21 00:16:17
  • MyBatis一对多嵌套查询的完整实例

    2023-07-12 02:49:56
  • Java重写equals及hashcode方法流程解析

    2023-10-14 06:53:13
  • C#中的DateTime是值类型还是引用类型

    2023-08-07 17:54:17
  • Java后端Tomcat实现WebSocket实例教程

    2023-08-22 17:31:09
  • java数据库唯一id生成工具类

    2023-04-04 22:53:34
  • 详解基于MVC的数据查询模块进行模糊查询

    2022-02-13 19:26:49
  • Java通过Scanner了解if...else if语句

    2023-11-29 04:28:44
  • C#使用IComparer自定义List类实现排序的方法

    2021-06-28 04:28:09
  • 从 JVM 中深入探究 Synchronized作用及原理

    2023-07-28 17:22:33
  • Java实现复制文件并命名的超简洁写法

    2022-02-12 12:54:06
  • 详解Spring Boot中使用AOP统一处理Web请求日志

    2021-08-24 15:50:17
  • Spring中XML schema扩展机制的深入讲解

    2022-06-29 07:44:15
  • Flutter 快速实现聊天会话列表效果示例详解

    2022-10-21 09:18:31
  • 从零开始Java实现Parser Combinator

    2023-06-18 18:52:04
  • Java中的5种同步辅助类介绍

    2023-11-14 21:36:28
  • Android中应用多进程的整理总结

    2022-05-05 04:25:21
  • C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法

    2023-07-15 21:35:09
  • java线程池合理设置最大线程数和核心线程数方式

    2021-06-19 22:02:31
  • C#9新特性之增强的模式匹配

    2023-04-16 07:35:34
  • asp之家 软件编程 m.aspxhome.com