android - 相同TextView的不同字体大小和重力?
问题描述
我有一个 textView ,我需要为单个文本设置两种不同的字体,并且我需要为相同的文本视图设置左右重力。
Java 代码
holder.mMessageRowBinding.txtMyRow.setText(messageModel.getMessage()+" "+CommonFragment.convertServerDateToUserTimeZone(messageModel.getUTCTimeZone(),
messageModel.getUTCTimeDate()));
XML 代码:
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/layoutThereRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginRight="50dp"
android:background="@drawable/white_corner"
android:orientation="vertical"
android:visibility="@{safeUnbox(!messageThread.fromMe ? View.VISIBLE : View.GONE),default=gone}">
<TextView
android:id="@+id/txtThereHeaderName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingTop="5dp"
android:paddingRight="8dp"
android:textAppearance="?android:textAppearanceSmallInverse"
android:textColor="@color/halfBlackColor"
android:textStyle="bold" />
<TextView
android:id="@+id/txtThereRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="8dp"
android:paddingBottom="5dp"
android:textColor="@color/halfBlackColor"
android:textSize="12sp" />
</androidx.appcompat.widget.LinearLayoutCompat>
当前结果:您好,这是 StackOverflow 下午 12:37
解决方案
通过使用 SpannableString 你可以实现这一点
SpannableString string = new SpannableString(messageModel.getMessage()+" "+
CommonFragment.convertServerDateToUserTimeZone(messageModel.getUTCTimeZone(),
messageModel.getUTCTimeDate()));
string.setSpan(new RelativeSizeSpan(1.5f), 10, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
推荐阅读
- java - JAX-WS @WebMethod 返回 void
- python - 我们可以在 Paramiko 中实现基于时间的密钥更新吗?
- angular - Angular 在子控件中获取更新的值
- proxy - 关于向多台服务器发送请求时的代理设置
- android - 具有相同 byteArray 数据和相同 IV 的 BadPaddingException
- google-sheets - 通过 Power Apps 批量上传记录到 Google 表格的慢速批量上传
- ios - 将数组传递给另一个视图控制器
- c - 使用 C 中的多线程进行长数素数检测
- typescript - 使用打字稿验证字符串中的第一个字母大小写
- r - R:从 SpatialGridDF 转换时,raster() 会更改像素大小