# 标签

View

共 132 篇文章

CircularProgressButton:会变形为圆形进度的按钮
Android

CircularProgressButton:会变形为圆形进度的按钮

CircularProgressButton:会变形为圆形进度的按钮登录、上传、支付这类操作有个经典体验诉求——按下按钮后,按钮原地变成加载动画,成功变绿、失败变红,整个过程不跳转、不弹窗。手写这套"按钮 ↔ 圆形进度条变形 + 状态切换"其实很繁琐(要处理形变动画、状态机、进度环绘制)。dmytrodanylyk 的 CircularProgressButton 是这方面的经典 Android

87
WilliamChart:轻量美观的 Android 图表库实战
精选开源

WilliamChart:轻量美观的 Android 图表库实战

WilliamChart:轻量美观的 Android 图表库实战数据可视化是运动、健康、金融、统计类 App 的刚需。MPAndroidChart 功能最全但偏重复杂,WilliamChart 走的则是"轻量 + 美观 + Kotlin 原生"路线——v3 用 Kotlin 完全重写,API 极简,一行 chart.animate(dataSet) 就能把数据画成带动画的折线/柱状/环形图,开箱即

175
Android

BigImageViewPager 详解:支持超大图、长图与视频的 Android 图片预览库

BigImageViewPager 详解:支持超大图、长图与视频的 Android 图片预览库在社交、电商、相册类 App 里,点开一张图进入可双指缩放的全屏预览几乎是标配。自己从零实现,要处理长图 OOM、手势缩放、原图下载进度、与图片加载框架衔接等一连串细节。BigImageViewPager(作者 SherlockGougou)把这些打包成一个开箱即用的 Android 预览库,支持超大图、

155
​SearchView 完全用法解析
Android

​SearchView 完全用法解析

SearchView 完全用法解析搜索是 App 里最常见的人机入口之一,Android 也为此专门提供了 SearchView。但很多人对它的印象停留在"放个输入框、加个监听",其实它背后还有一整套可搜索配置(searchable 配置)、searchable Activity、ACTION_SEARCH 传递与搜索建议机制。本文从零开始,把 SearchView 的两种用法、清单声明、接收查询

310
RecyclerView 缓存机制终极指南:从原理到实战优化
Android

RecyclerView 缓存机制终极指南:从原理到实战优化

RecyclerView 缓存机制终极指南:从原理到实战优化1、理解RecyclerView缓存的核心价值RecyclerView之所以能成为Android开发中最强大的列表控件,关键在于它高效的四级缓存体系: 即时响应:通过复用ViewHolder减少对象创建开销 内存优化:分层缓存控制内存占用峰值 平滑滚动:预加载机制保障60fps流畅体验 灵活扩展:支持开发者自定义缓存策略2、深入四级缓存工

304
TextureView 初探:结合 Camera 实现相机预览
Android

TextureView 初探:结合 Camera 实现相机预览

TextureView 初探:结合 Camera 实现相机预览1、TextureView 基本概念1.1、什么是 TextureViewTextureView 是 Android 4.0(API 14)引入的一个视图类,它可以将内容流(如相机预览、视频播放)渲染到一个硬件加速的纹理上。与 SurfaceView 不同,TextureView 是一个普通的 View,可以像其他 View 一样进行变

343
RemoteViews 实现原理深度解析
Android

RemoteViews 实现原理深度解析

RemoteViews 实现原理深度解析RemoteViews,顾名思义,就是远程的 View。它是 Android 提供的一个用于跨进程更新 UI 的类,可以在其他进程中创建和更新 View。RemoteViews 实现了 Parcelable 接口,因此可以在进程间传输,主要用于通知栏通知和桌面小组件等场景。1、RemoteViews 概述1.1、什么是 RemoteViewsRemoteVi

376
Android

Android View 动画之 LayoutAnimation 详解

Android View 动画之 LayoutAnimation 详解1、LayoutAnimation 概述LayoutAnimation 是 Android 中用于为 ViewGroup 的子 View 添加进入动画的工具。它可以让列表、网格等容器中的子元素按照特定的顺序和时间间隔依次执行动画,从而创造出流畅、有序的视觉效果。核心特性: - 自动为 ViewGroup 的子 View 添加进入

497
Android SurfaceView 全面解析与实践指南
Android

Android SurfaceView 全面解析与实践指南

Android SurfaceView 全面解析与实践指南1、SurfaceView 概述SurfaceView 是 Android 中一种特殊的 View,它拥有独立的 Surface,可以在非 UI 线程进行绘制操作。与普通 View 不同,SurfaceView 的绘制不会阻塞主线程,这使得它非常适合需要频繁刷新或复杂渲染的场景。核心特性: - 独立的渲染 Surface,双缓冲机制 - 支

494
Android

Android 布局中 @id/ 和 @+id/ 的区别

Android 布局中 @id/ 和 @+id/ 的区别1、基本概念在 Android XML 布局文件中,@id/ 和 @+id/ 用于定义和引用视图的唯一标识符: - @+id/:创建一个新的 ID - @id/:引用一个已存在的 ID2、详细区别2.1、@+id/- 功能:在 R.java 文件中创建一个新的 ID 资源 - 使用场景:当你首次定义一个视图的 ID 时 - 编译结果:会在 R

411
Android

View 坐标方法浅析:getLocalVisibleRect()、getGlobalVisibleRect()、getLocationOnScreen()、getLocationInWindow()

View 坐标方法浅析:getLocalVisibleRect()、getGlobalVisibleRect()、getLocationOnScreen()、getLocationInWindow()1、概述在 Android 开发中,了解 View 的坐标位置和可见区域是非常重要的,特别是在实现动画、交互效果和布局调整时。Android 提供了多个方法来获取 View 的位置和可见区域信息,其中

526
Toast 源码详解:从创建到显示的完整流程
Android

Toast 源码详解:从创建到显示的完整流程

Toast 源码详解:从创建到显示的完整流程1、Toast 的创建与初始化1.1、makeText 方法Toast 的创建从 makeText() 方法开始:这个方法会调用内部的 makeText 方法,该方法会根据兼容性设置创建 Toast 实例:1.2、Toast 构造方法Toast 的构造方法会初始化关键成员变量:1.3、Looper 获取Toast 必须在有 Looper 的线程中创建:1

542
Android

Android Canvas 图层详解

Android Canvas 图层详解1、Canvas 图层概述Canvas 图层是 Android 绘图系统中的重要概念,它允许开发者在绘制过程中创建和管理多个绘图层,实现复杂的视觉效果。图层可以看作是独立的绘图表面,支持保存和恢复绘图状态,为绘制操作提供了更大的灵活性。核心概念: - 图层:独立的绘图表面,拥有自己的状态 - 画布状态:包括矩阵变换、裁剪区域、绘制属性等 - 图层栈:用于管理多

572