# 标签

View

共 132 篇文章

Android

Linkify的使用

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

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

ViewOutlineProvider设置圆角矩形等形状

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

2.0k
Android

WebView视频全屏播放

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

1.8k
Android

浅析Adapter中hasStableIds的作用

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

2.1k
Android

Webview识别当前选中的类型 HitTestResult

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

1.6k
Android

ViewConfiguration详解

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

1.9k
获取Android内置WebView内核版本
Android

获取Android内置WebView内核版本

获取Android内置WebView内核版本竟然能遇到这样奇葩的事情,网页用的技术过于新颖,以至于只支持高版本Chromium内核的,低版本安卓系统中内置的内核版本较低,无法加载前端页面。1、设置查看在系统设置里 > 应用 > 应用管理 > 显示系统应用,查看WebView组件:2、页面查看通过WebView发起的网络请求,都会带上浏览器的UA,通常页面都可以通过UA判断浏览器的内核版本。这里有两

1.2w
监听View树ViewTreeObserver深度剖析
Android

监听View树ViewTreeObserver深度剖析

监听View树ViewTreeObserver深度剖析ViewTreeObserver用来监听View视图树的变化,正如它的注释所说:ViewTreeObserver类是final类不可继承,且构造函数默认View包可见。应用只能通过getViewTreeObserver()方法获取:在ViewRootImpl构造的时候,同时也会构造一个AttachInfo,在这mAttachInfo中默认就拥有

2.1k
颜色矩阵ColorMatrix
Android

颜色矩阵ColorMatrix

颜色矩阵ColorMatrix1、ColorMatrix颜色矩阵ColorMatrix是一个用来表示三原色和透明度的4x5的矩阵。1.1、介绍将ColorMatrix表示为一个数组的形式如下:一个颜色则使用 [R, G, B, A] 的方式进行表示,所以矩阵与颜色的计算方式则为:从上述的公式可以看出,颜色矩阵的功能划分如下:a, b, c, d, e 表示三原色中的红色f, g, h, i, j

2.0k
Android

View的setWillNotDraw()方法作用

View的setWillNotDraw()方法作用仅View一个类代码就超过3万行,从头到尾看一遍难度太大。除了记住常用的方法,还有一些不那么常用的。本篇将要介绍的是setWillNotDraw()方法。1、setWillNotDraw() 方法介绍如果调用View的setWillNotDraw(true)方法,也就是给View设置WILL_NOT_DRAW标志,会跳过当前View的绘制,对应Vi

3.2k
Android

ViewStub源码剖析

ViewStub源码剖析之前在ViewStub懒加载一文中记录了如何使用ViewStub懒加载布局,当时没有继续对ViewStub深入研究。现在回头看看ViewStub源码,只有三百多行,属实需要细细品一下。 nukc在看了ViewStub源码之后突发灵感,写了StateView库,吸收了ViewStub的一些特性,内存占用少。从ViewStub的构造函数开始看,ViewStub继承自View,所

2.0k
View的invalidate()流程​
Android

View的invalidate()流程​

View的invalidate()流程自定义View的时候常用到invalidate()方法,为了刷新View以重新绘制。和requestLayout()不同的是,调用invalidate()后只会回调调用View的draw()方法;而调用requestLayout()则会从上到下重新测量、布局一遍。 应根据实际情况选择使用invalidate()还是requestLayout(),如果只需要刷新

2.7k
View的requestLayout()流程
Android

View的requestLayout()流程

View的requestLayout()流程requestLayout()常用来对View重新进行测量、布局和绘制。当View需要更新当前的布局时,就向父布局申请重新布局。虽然是ViewParent接口中定义的方法:但其完整实现却在View中,而不在ViewGroup类里(后面会讲到):在继续跟随源码剖析requestLayout()流程之前,先搞清楚View中的mParent从哪来?1、View

2.6k
Android

Android ColorStateList 详解

Android ColorStateList 详解1、ColorStateList 概述ColorStateList 是 Android 中用于管理不同状态下颜色的类,它允许为 View 的不同状态(如按下、聚焦、禁用等)设置不同的颜色。ColorStateList 广泛应用于按钮、文本框等控件的颜色管理,是实现响应式 UI 的重要工具。核心特性: - 支持多种 View 状态的颜色定义 - 可以

326
布局彩蛋:BlinkLayout闪烁布局
Android

布局彩蛋:BlinkLayout闪烁布局

布局彩蛋:BlinkLayout闪烁布局解析XML布局的过程中有一个彩蛋,在LayoutInflater类中的tryCreateView()方法里:其中TAG_1995标签的定义如下,在这里还能看到熟悉的两个布局tag:<merge/>和<include/>。1、使用<blink/>新建一个普通项目,在XML布局中尝试一下<blink/>这个标签:忽略AndroidStudio的Cannot re

2.3k