这些只是自己测试的一些发现和理解做个记录,如果那里不对还请不吝赐教onDraw()先于dispatchDraw()执行,用于本身控件的绘制,dispatchDraw()用于子控件的绘制onDraw()绘制的内容可能会被子控件覆盖而dispatchDraw()是子控件的绘制,所以是覆盖在onDraw()上的布局:<?xml version="1.0" encoding=&q
2022-12-06 michael007js 99
在Android的PorterDuff.Mode类中列举了他们制定的规则:android.graphics.PorterDuff.Mode.SRC:只绘制源图像android.graphics.PorterDuff.Mode.DST:只绘制目标图像android.graphics.PorterDuff.Mode.DST_OVER:在源图像的顶部绘制目标图像android.graphics.Port
2022-12-06 michael007js 498
前言在客户端开发中,我们往往需要对一个TextView的文字的部分内容进行特殊化处理,比如加粗、改变颜色、加链接、下划线等。iOS为我们提供了AttributedString,而Android则提供了SpannableString。在Android的android.text.style包下为我们提供了各种各样的span(可以参考这篇文章),例如:问题网上已经有着很多使用这些span的教程了,所以没
2022-12-02 michael007js 719
先解释一个类:Paint.FontMetrics,它表示绘制字体时的度量标准。google的官方api文档对它的字段说明如下:ascent: 字体最上端到基线的距离,为负值。descent:字体最下端到基线的距离,为正值。看下图:中间那条线就是基线,基线到上面那条线的距离就是ascent,基线到下面那条线的距离就是descent。回到主题,我们要让imagespan与text对齐,只需把image
2022-12-02 michael007js 712
阅读目录回到顶部1.没有必要时请不用使用静态变量 使用Java的开发者都知道,当某个对象被定义为stataic变量所引用,这个对象所占有的内存将不会被回收。有时,开发者会将经常调用的对象或者变量定义为static,以便提高程序的运行性能。因此,不是常用到的对象或者变量,不要定义为static类型的变量,尤其是静态类对象的定义,一定要仔细考虑是否有必要。例如 类X创建了,没有被回收的话,静态变量a
2022-12-02 michael007js 198
加给元素:offsetLeft (距离定位父级的距离)offsetTop (距离定位父级的距离)offsetWidth (可视宽度)offsetHeight (可视高度)clientLeft (左边框宽度)clientTop (上边框宽度)clientWidth(width + padding)clientHeight(height + padding)scrollTop(纵向滚动距离)scrol
2022-12-02 michael007js 248
一、概述 SpannableString和String一样都是一种字符串类型,SpannableString源码中的解释是:这类内容的文本是不变的,但是标记对象可以被附加和分离。也就是说,可以改变文本中的部分字符串,打造丰富多彩的文本显示效果。 一般项目中总会需要有在同一个文本中显示字体不同颜色,不同大小等效果,虽然可以在XML文件中设置多个TextView可以实现效果,但是在布局优化的角度
2022-12-02 michael007js 743
导读本篇文章将介绍Materia_Design控件,design包中的AppBarLayout的简单使用说明控件简介AppbarLayout继承于LinearLayout,是一个垂直的LinearLayout,它实现了Material Design的许多功能和特性,即滚动手势(Scrolling Gestures)我们可以定义行为Behavior,当某个可滑动View(如ListView)滑动手势
2022-12-02 michael007js 414