gpt4 book ai didi

android - 如何让 ImageSpan 与 TextView 中的其余文本具有相同的高度

转载 作者:行者123 更新时间:2023-12-03 21:21:44 26 4
gpt4 key购买 nike

我曾经使用 Unicode,在 TextView 中显示一些图像符号.

然而,不久之后,我意识到 Unicode 图像符号在所有设备上看起来并不相同。

然后我决定使用 ImageSpan .

首先,我创建了一个矢量图像,在图像边框周围没有填充。

enter image description here

然后,我应用以下代码

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextView textView = findViewById(R.id.text_view);

SpannableString ss = new SpannableString("abF\u2611 ");

Drawable d = ContextCompat.getDrawable(this, R.drawable.ic_if_check_box_outline_326561);

d.setTint(textView.getCurrentTextColor());

float height = textView.getPaint().getFontMetrics().descent - textView.getPaint().getFontMetrics().ascent;

d.setBounds(0, 0, (int)height, (int)height);

ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);

ss.setSpan(span, 4, 5, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView.setText(ss, TextView.BufferType.SPANNABLE);
}

这是我的结果。

enter image description here

我想要我的 ImageSpan版本的高度与 Unicode 版本的高度相同。

不过,好像
float height = textView.getPaint().getFontMetrics().descent - textView.getPaint().getFontMetrics().ascent;

真的没有帮助。

关于如何实现这一目标的任何建议?我发布了我的 SVG 图像,以防你想测试它。

ic_if_check_box_outline_326561.xml
<vector android:height="24dp" android:viewportHeight="18"
android:viewportWidth="18" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:fillType="evenOdd"
android:pathData="M4.9,7.1L3.5,8.5L8,13L18,3L16.6,1.6L8,10.2L4.9,7.1L4.9,7.1ZM16,16L2,16L2,2L12,2L12,0L2,0C0.9,0 0,0.9 0,2L0,16C0,17.1 0.9,18 2,18L16,18C17.1,18 18,17.1 18,16L18,8L16,8L16,16L16,16Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

最佳答案

好吧,也许这是必要的

drawable.setBounds(0,0, (int) editText.getPaint().getTextSize(),(int) editText.getPaint().getTextSize());

关于android - 如何让 ImageSpan 与 TextView 中的其余文本具有相同的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51166936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com