首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自定义 View 实战 01 - TextView

前言 本来主要介绍了系统的textview是如何显示,字体大小、文字颜色如何设置、文字的位置该如何计算 步骤 1、继承 View 重写构造方法 class CustomTextView @JvmOverloads...,defStyle:Int=0) :View(context,attr,defStyle) 这里使用的是Kotlin,所以构造函数看起来要简洁很多 2、初始化对象及自定义参数获取 var...android:paddingTop="5dp" android:paddingBottom="10dp" app:customText="我是自定义...自定义TextView 好了,到这里就结束了,简单的几步就可以实现文字的展示了,自定义 View 的基本步骤就如上面介绍的那样。...这里总结一下: 重新构造函数(初始化会需要) 对象初始化及自定义属性的获取 重写 onMeasure() 方法(只有重新了该方法,绘制的内容才能正确的显示) 重写 onDraw() 方法(在这里绘制我们需要的内容

49130
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    TextView

    虽然这些单击动作已经可以满足大部分的需求了,但是如果要想在单击链接的时候执行任意的自定义的动作,就需要学习下面的内容了。...控件 textView.setText(s); BackgroundColorSpan只能够设置文字的背景色,为了更加的通用,自定义一个ColorSpan类,使其能够同时设置文字颜色和背景色(android.text.style.ForegroundColorSpan...(Color.GREEN); tv.setTextColor(Color.DKGRAY); } /** * 自定义Span类,可以同时设置文字颜色和背景色...="@string/link_text" ---- 带边框的TextView 两种方式: 编写一个继承TextView类的自定义控件,重写onDraw()绘制边框 使用9-patch(*.9.png)格式的图像作为...layout_margin="10dp" android:padding="10dp" android:gravity="center" android:text="自定义

    1.6K20

    TextView自定义下划线、点击弹框

    看来这种方法不可行… 于是,便开始了我的自定义之路~~~~ 先看效果图: 这是纯文本的TextView ? 这是富文本的TextView ? 02 — 分析 ?...要实现以上需求,应该从这几个方面入手: 文本展示,普通文本调用TextView的setText方法既可,如果是富文本,就使用TextView的fromHtml方法,至于图片如何展示,我在上一篇文章用TextView...这里需要注意,如果TextView外层被ScrollView包裹,在弹框是就需要纵轴方向上减去ScrollView的偏移量。...也就是TextView需要知道ScrollView的纵向偏移量,这里我设置了方法,将ScrollView的偏移量传入。 ?...这样就实现了我们如上图展示的,给TextView绘制下划线和图标点击,弹框的效果。

    1.5K30

    Android项目实战(十):自定义倒计时的TextView

    Android 购物车功能的实现 怎么实现某一个列表项中的TextView 显示的剩余时间也跟随着变化呢? 找寻了很多方法,最后问了一个Android交流群的群主得以解决。...怎么实现呢: 即自定义一个TextView在列表项中来显示剩余时间,只要每次刷新适配器的时候,给这个自定义的TextView 一个初始值,然后TextView就可以自己自定来把初始值每秒减一,显示在TextView...那么看下这个自定义TextView import android.content.Context; import android.util.AttributeSet; import android.util.Log...; import android.widget.TextView; public class ShowTiemTextView extends TextView implements Runnable...学习内容来自: 自定义倒计时控件

    97860

    TextView实现自定义换行以及缩进文字的格式化对齐

    自定义换行 我们通常在自定义控件的时候会遇到不想用系统默认的文字换行,而需要根据自己的需求来实现文字的换行,原理如下: 使用Paint的measureText方法来测量文字的长度 假设设定单行的最大长度为...那么就通过measureText来测量每一个字的长度,然后不断的累加再去对比maxWidth,如果比maxWidth大,那就追加一个换行符号,然后再把累加长度归零,继续开始计算,以此类推 图文混排实现 TextView...spannable.setSpan(imageSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); setText(spannable); Spannable是根据当前TextView...的文本内容创建出来的,然后可以用ImageSpan去替换Spannable中的任意一个位置 文本缩进实现 依然是用TextView的富文本Spannable去实现,代码如下: Spannable spannable...自动换行的时机了,但是我们自定义的换行时机还没有达到,所以自定义换行的时机一定要发生在TextView自动换行时机之前这样才能保证自定义换行实现准确换行,至于如何在View还没渲染的时候首先测量View

    2.6K20
    领券