我的博客

  • Android 字体高度的研究

    Android自定义View绘制的时候,会有很多情况下要与字体打交道,涉及到字体宽度、高度的时候要特别注意一下几个概念,见图:image.pngbaseLine:一行文字的底线。Ascent: 字符顶部到baseLine的距离。Descent: 字符底部到baseLine的距离。Leading: 字符行间距。public class TestOnDraw extends Activity {

    2022-12-02 michael007js 388

  • 【Android】TextView中不同大小字体如何上下垂直居中?

    前言在客户端开发中,我们往往需要对一个TextView的文字的部分内容进行特殊化处理,比如加粗、改变颜色、加链接、下划线等。iOS为我们提供了AttributedString,而Android则提供了SpannableString。在Android的android.text.style包下为我们提供了各种各样的span(可以参考这篇文章),例如:问题网上已经有着很多使用这些span的教程了,所以没

    2022-12-02 michael007js 723

  • Android ImageSpan与TextView中的text居中对齐问题解决(无论TextView设置行距与否)

    先解释一个类:Paint.FontMetrics,它表示绘制字体时的度量标准。google的官方api文档对它的字段说明如下:ascent: 字体最上端到基线的距离,为负值。descent:字体最下端到基线的距离,为正值。看下图:中间那条线就是基线,基线到上面那条线的距离就是ascent,基线到下面那条线的距离就是descent。回到主题,我们要让imagespan与text对齐,只需把image

    2022-12-02 michael007js 712

  • Java内存优化和性能优化的几点建议

    阅读目录回到顶部1.没有必要时请不用使用静态变量 使用Java的开发者都知道,当某个对象被定义为stataic变量所引用,这个对象所占有的内存将不会被回收。有时,开发者会将经常调用的对象或者变量定义为static,以便提高程序的运行性能。因此,不是常用到的对象或者变量,不要定义为static类型的变量,尤其是静态类对象的定义,一定要仔细考虑是否有必要。例如 类X创建了,没有被回收的话,静态变量a

    2022-12-02 michael007js 199

  • 原生js获取元素的各种位置(大全)

    加给元素:offsetLeft (距离定位父级的距离)offsetTop (距离定位父级的距离)offsetWidth (可视宽度)offsetHeight (可视高度)clientLeft (左边框宽度)clientTop (上边框宽度)clientWidth(width + padding)clientHeight(height + padding)scrollTop(纵向滚动距离)scrol

    2022-12-02 michael007js 251

  • Andorid字体修改SpannableString的使用

    一、概述  SpannableString和String一样都是一种字符串类型,SpannableString源码中的解释是:这类内容的文本是不变的,但是标记对象可以被附加和分离。也就是说,可以改变文本中的部分字符串,打造丰富多彩的文本显示效果。   一般项目中总会需要有在同一个文本中显示字体不同颜色,不同大小等效果,虽然可以在XML文件中设置多个TextView可以实现效果,但是在布局优化的角度

    2022-12-02 michael007js 747

  • AppBarLayout 简单使用

    导读本篇文章将介绍Materia_Design控件,design包中的AppBarLayout的简单使用说明控件简介AppbarLayout继承于LinearLayout,是一个垂直的LinearLayout,它实现了Material Design的许多功能和特性,即滚动手势(Scrolling Gestures)我们可以定义行为Behavior,当某个可滑动View(如ListView)滑动手势

    2022-12-02 michael007js 415

  • Android自定义View-Path的详细介绍

    一、构造方法1、Path path=new Path();//空的构造方法2、Path path=new Path(Path src);//创建一个新的路径,并从src路径获取内容赋值给新的路径二、Path常用的一些方法分类Path方法备注点操作moveTo(float x,float y)设置接下来操作的起点位置为(x,y)rMoveTo(float x,float y)基于当前最后一个点位置移

    2022-12-02 michael007js 255

首页
关于博主
我的博客
搜索