# 标签

View

共 118 篇文章

Android

ItemDecoration:打造精致的列表视觉效果

ItemDecoration:打造精致的列表视觉效果作为 Android 开发中最强大的列表控件,RecyclerView 的灵活性和扩展性很大程度上来自于它的装饰器体系。本文将全面解析 ItemDecoration 的工作原理、各个方法的调用机制以及实战应用技巧。1、ItemDecoration 设计哲学1.1、核心定位ItemDecoration 采用典型的装饰者模式,在不侵入原有适配器和布局

392
Android

StateListAnimator 详解与使用方法

StateListAnimator 详解与使用方法StateListAnimator 是 Android API 21 (Lollipop) 引入的强大动画框架组件,它可以根据视图的状态变化自动触发相应的动画效果。下面我将详细介绍其核心用法和工作原理。1、基础概念1.1、本质特性状态驱动:根据 View 的状态(如 pressed/focused/enabled)切换动画属性动画:底层使用 Obj

447
Android

Palette的使用

Palette的使用Palette的使用很简单,关键就是用图片(Bitmap)生成颜色调板(Palette),再从 Palette 中获取有代表性的颜色。以下是详细步骤和示例代码:1. 获取Bitmap对象必须有一个图片对象(Bitmap)。比如:2. 生成Palette对象异步生成(推荐方式):通常用 Palette 的异步生成,避免主线程阻塞:defaultColor:是当 Palette 没

446
Android

深度解析ItemDecoration:不仅仅是分割线

深度解析ItemDecoration:不仅仅是分割线在 Android 开发中,RecyclerView 是一个非常强大的列表控件,而 ItemDecoration 则是其重要的组成部分。很多开发者只知道它可以用来添加分割线,但实际上,ItemDecoration 的功能远不止于此。本文将深入解析 RecyclerView ItemDecoration 的工作原理、使用方法以及各种高级应用场景。1

461
Android

SelectionContainer:实现文本选择与复制功能

SelectionContainer:实现文本选择与复制功能在 Jetpack Compose 中,SelectionContainer 是一个非常实用的组件,它能够为包裹的子组件(如 Text)启用文本选择功能,允许用户长按文本进行选择和复制操作。1、基本用法默认情况下,Text 组件是不支持文本选择的。如果需要让文本可选,可以使用 SelectionContainer 将 Text 组件包裹起

1.8k
Android

AnnotatedString:打造多样式文字的神器

AnnotatedString:打造多样式文字的神器在开发 Android 应用时,我们常常需要在同一个文本组件中展示多种样式的文字,比如部分文字加粗、部分文字变色、部分文字添加下划线等。在传统的 Android 开发中,这通常是通过 SpannableString 来实现的。而在 Jetpack Compose 中,我们有了一个更加强大且易于使用的工具——AnnotatedString。一、An

1.5k
Android

Icon 和 Image 组件:展示图片与图标的最佳实践

Icon 和 Image 组件:展示图片与图标的最佳实践在 Jetpack Compose 中,Icon 和 Image 是两个用于显示图像资源的重要组件。虽然它们都可以用来显示图片,但在使用场景和功能上有一些区别。本文将详细介绍这两个组件的用法、区别以及一些实用的技巧。一、Image 组件Image 组件是 Compose 中用于显示图片的基础组件,它可以加载各种类型的图片资源,包括本地资源、网

1.7k
Android

Compose进度条:实现优雅的加载效果

Compose进度条:实现优雅的加载效果在开发 Android 应用时,进度条是必不可少的组件之一。它可以帮助用户了解应用当前的加载状态,提升用户体验。Jetpack Compose 提供了多种方式来实现进度条,包括内置的 CircularProgressIndicator 和 LinearProgressIndicator,以及自定义进度条的选项。本文将详细介绍如何在 Compose 中使用和自

2.0k
Android

Android项目如何引入Compose

Android项目如何引入Compose现在还有多少项目没用上Kotlin,Google就在三年前又就放出了Compose,一种全新的声明式UI开发框架。具体学习可以参考官方Compose Demo。在 Android 项目中引入 Jetpack Compose 很简单,首先确保安装了支持 Jetpack Compose 的最新版本的 Android Studio,配置具体步骤如下:1. 创建新的

1.6k
Android

Linkify的使用

Linkify的使用Linkify是一个辅助类,它可以自动地在TextView(或其派生类)中通过RegEx(正则表达式)模式匹配来创建超链接。当TextView中的内容匹配成功并生成超链接之后,TextView内容的下面就会出现下划线,单击则可以触发相应的操作,例如拨号,打开浏览器等。Linkify可以在xml中使用,也可以通过Java代码使用。1、xml中使用通过给TextView设置andr

1.3k
ViewOutlineProvider设置圆角矩形等形状
Android

ViewOutlineProvider设置圆角矩形等形状

ViewOutlineProvider设置圆角矩形等形状在项目开发中,为了让图片显示得更加美观,通常 UI 会设计成圆角矩形或圆形效果。介绍一种简单的原生方法设置圆角。ViewOutlineProvider是Android 5.x引入的新特性(SDK_INT >= 21),它是View包中的类,用于实现View的阴影和轮廓。用ViewOutlineProvider可以快捷地实现控件的圆角(Kotl

1.8k
Android

WebView视频全屏播放

WebView视频全屏播放在StackoverFlow上就看到一篇实现WebView全屏播放Youtube网页视频的方法,这个方法很不错。废话不多说,直接看操作:继承WebChromeClient,重写WebChromeClient中的onShowCustomView(View , CustomViewCallback)和onHideCustomView()方法来实现网页视频全屏播放功能:首先看o

1.7k
Android

浅析Adapter中hasStableIds的作用

浅析Adapter中hasStableIds的作用1、ListView Adapter中的hasStableIds在使用ListView的时候需要自定义Adapter,一般是继承Adapter或者其子类比如BaseAdapter,并实现方法。其中有两个方法大家一定不陌生:其中一个是hasStableIds():在众多Adapter的子类中默认实现都是返回false:另一个方法则是getItemId

1.9k
Android

Webview识别当前选中的类型 HitTestResult

Webview识别当前选中的类型 HitTestResult在Webview中通过HitTestResult可以识别当前触碰到网页上的元素类型,通过这个方法可以实现:长按文本选中,长按图片保存等功能。首先通过getHitTestResult()方法获取Webview中的HitTestResult对象:HitTestResult对象中有两个变量,分别保存点击类型mType和点击的数据mExtra:通

1.4k
Android

ViewConfiguration详解

ViewConfiguration详解ViewConfiguration这个类主要定义了UI中所使用到的标准常量,像超时、尺寸、距离,如果我们需要得到这些常量值,就可以通过ViewConfiguration类来获取。 ①首先获取ViewConfiguration对象,由于ViewConfiguration的构造方法为私有的,只能通过get(context)这个静态方法来获取到该对象。 先尝试从sC

1.7k