carson带你学android:手把手教你写一个完整的自定义view

author author     2023-04-04     296

关键词:

参考技术A

自定义View一共分为两大类,具体如下图:

对于自定义View的类型介绍及使用场景如下图:

在使用自定义View时有很多注意点(坑),希望大家要非常留意:

View的内部本身提供了post系列的方法,完全可以替代Handler的作用,使用起来更加方便、直接。

主要针对View中含有线程或动画的情况: 当View退出或不可见时,记得及时停止该View包含的线程和动画,否则会造成内存泄露问题

当View带有滑动嵌套情况时,必须要处理好滑动冲突,否则会严重影响View的显示效果。

接下来,我将用自定义View中最常用的 继承View 来说明自定义View的具体应用和需要注意的点

在下面的例子中,我将讲解:

下面我将逐个步骤进行说明:
步骤1:创建自定义View类(继承View类)

特别注意:

步骤2:在布局文件中添加自定义View类的组件及显示

至此,一个基本的自定义View已经实现了,运行效果如下图。

接下来继续看自定义View关于属性自定义的问题:

先来看wrap_content & match_parent属性的区别

如果不手动设置支持 wrap_content 属性,那么 wrap_content 属性是不会生效(显示效果同 match_parent )

padding 属性:用于设置控件内容相对控件边缘的边距;

如果不手动设置支持padding属性,那么padding属性在自定义View中是不会生效的。

绘制时考虑传入的padding属性值(四个方向)。

除了常见的以android:开头的系统属性(如下所示),很多场景下自定义View还需要系统所没有的属性,即自定义属性。

实现自定义属性的步骤如下:

下面我将对每个步骤进行具体介绍

对于自定义属性类型 & 格式如下:

至此,一个较为规范的自定义View已经完成了。

Carson_Ho的github: 自定义View的具体应用

不定期分享关于 安卓开发 的干货,追求 短、平、快 ,但 却不缺深度

carson带你学android:手把手带你全面学习补间动画的使用!(代码片段)

...天,我将将献上一份Android补间动画的使用教程,手把手教你使用补间动画。Carson带你学Android动画系列文章:Carson带你学Android:一份全面&详细的动画知识学习攻略Carson带你学Android:常见的三种动画类型Carso... 查看详情

carson带你学android:手把手带你全面学习补间动画的使用!(代码片段)

...天,我将将献上一份Android补间动画的使用教程,手把手教你使用补间动画。Carson带你学Android动画系列文章:Carson带你学Android:一份全面&详细的动画知识学习攻略Carson带你学Android:常见的三种动画类型Carso... 查看详情

carson带你学android:自定义viewcanvas类使用教程(代码片段)

...你学Android:自定义ViewDraw过程Carson带你学Android:手把手教你写一个完整的自定义ViewCarson带你学Android:Canvas类全面解析Carson带你学Android:Path类全面解析目录1.简介定义:画布,是一种绘制时的规则是安卓... 查看详情

carson带你学android:深入解析自定义view工作流程(代码片段)

...你学Android:自定义ViewDraw过程Carson带你学Android:手把手教你写一个完整的自定义ViewCarson带你学Android:Canvas类全 查看详情

carson带你学数据结构:手把手教你学习-树

前言本文主要讲解数据结构中的树结构内容包括其特点、结构等,希望你们会喜欢。目录1.定义2.基础概念对于树的数据结构,有许多基础概念,具体请看下图3.存储结构树的存储结构包括:双亲表示法、孩子表示... 查看详情

carson带你学android:手把手带你入门神秘的rxjava(代码片段)

前言Rxjava由于其基于事件流的链式调用、逻辑简洁&使用简单的特点,深受各大Android开发者的欢迎。本文主要:面向刚接触Rxjava的初学者提供了一份清晰、简洁、易懂的Rxjava入门教程涵盖基本介绍、原理&具体使用等... 查看详情

carson带你学android:这是一份详细的retrofit使用教程(含实例讲解)(代码片段)

...Retrofitv2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析Retrofit2.0源码Carson带你学Android开源库系列文章:Carson带你学Android:主流开源图片加载库对比(UIL、Picasso、Glide、Fresco)Carson带你学Android:主流... 查看详情

carson带你学android:你要的webview与js交互方式都在这里了(代码片段)

...xff1a;全面总结WebView与JS的交互方式Carson带你学Android:手把手构建WebView缓存机制及资源预加载方案Carson带你学Android:盘点你不知道的WebView漏洞目录1.交互方式总结Android与JS通过WebView互相调用方法,实际上是:Androi... 查看详情

carson带你学android:最全面的webview使用详解(代码片段)

...等等,如下图那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用用法。Carson带你学WebView系列文章Carson带你学Androidÿ 查看详情

自定义形状seekbar学习(代码片段)

...是有很大难度。我的入门文章是《Carson带你学Android:手把手教你写一个完整的自定义View》Carson带你学Android:手把手教你写一个完整的自定义View-简书非常有用,让我这样的门外汉知道了view的描画流程。这部分文章是... 查看详情

自定义形状seekbar学习(代码片段)

...是有很大难度。我的入门文章是《Carson带你学Android:手把手教你写一个完整的自定义View》Carson带你学Android:手把手教你写一个完整的自定义View-简书非常有用,让我这样的门外汉知道了view的描画流程。这部分文章是... 查看详情

carson带你学设计模式:单例模式(singleton)(代码片段)

前言今天Carson来全面总结最常用的设计模式-单例模式。Carson带你学设计模式系列文章Carson带你学设计模式:这是一份全面&详细的设计模式学习指南Carson带你学设计模式:单例模式(Singleton)Carson带你学设计模... 查看详情

carson带你学设计模式:观察者模式(observer)(代码片段)

前言今天Carson来全面总结最常用的设计模式-观察者模式(Observer)。Carson带你学设计模式系列文章Carson带你学设计模式:这是一份全面&详细的设计模式学习指南Carson带你学设计模式:单例模式(Singleton࿰... 查看详情

carson带你学android:如何理解context对于activity的意义?(代码片段)

通过这篇文章你将学习到:Context与Activity有什么关系?Context对于Activity有什么作用?不同类型的Context的应用场景是什么?关于Context的几个常见关键知识点1.二者有什么关系?Context是一个抽象类;Activity继... 查看详情

carson带你学android:常见的动画类型你知多少?(代码片段)

前言动画的使用是Android开发中常用的知识可是动画的种类繁多、使用复杂,每当需要采用自定义动画实现复杂的动画效果时,很多开发者就显得束手无策本文将献上一份Android动画简介,包括动画的种类、使用、原理... 查看详情

carson带你学设计模式:这是一份全面&详细的设计模式学习指南

前言设计模式其实并不神秘,今天carson将带你了解一切关于设计模式的知识。Carson带你学设计模式系列文章Carson带你学设计模式:这是一份全面&详细的设计模式学习指南Carson带你学设计模式:单例模式(Singleto... 查看详情

carson带你学设计模式:这是一份全面&详细的设计模式学习指南

前言设计模式其实并不神秘,今天carson将带你了解一切关于设计模式的知识。Carson带你学设计模式系列文章Carson带你学设计模式:这是一份全面&详细的设计模式学习指南Carson带你学设计模式:单例模式(Singleto... 查看详情

carson带你学android:这是一份全面&详细的webview学习攻略(代码片段)

...等等,如下图那么这种该如何实现呢?其实这是Android里一个叫WebView组件实现今天,我将献上一份全面&详细的WebView攻略,含具体介绍、使用教程、与前端JS交互、缓存机 查看详情