首页 > 解决方案 > Android梯形TextView

问题描述

作为要求,我想实现如下横幅卡:

我想达到的卡

在右侧,有一个带有梯形图像集的 ImageView,在左侧,有一个带有链接的 TextView(在图像中由虚线梯形显示)。整个设置在 CardView 内。

有什么办法可以让 TextView Trapezoidal 适合图像?

尝试将 XML 梯形背景设置为 TextView,但它只是在其后面绘制,而不是实际设置文本的边界。

我还尝试通过覆盖 dispatchDraw() 方法来剪裁父 ConstraintLayout,但随后文本也被剪裁,这是意料之外的:

override fun dispatchDraw(canvas: Canvas?) {
        val wid = width.toFloat()
        val hei = height.toFloat()
        path.moveTo(0f, 0f)
        path.lineTo(wid, 0f)
        path.lineTo(wid - dpToPx(60), hei)
        path.lineTo(0f, hei)
        path.close()
        canvas?.clipPath(path)
        super.dispatchDraw(canvas)
    }

我们能否实现一个 TextView,它在梯形的范围内以一种裁剪感知的方式呈现文本?或任何其他替代解决方案请..

标签: androidkotlintextviewshapes

解决方案


推荐阅读