android - 提取文本视图中显示的文本行
问题描述
是否可以获得多行文本的每一行,因为它将出现在固定宽度的文本视图中,具有字体、大小、对齐方式,而无需实际绘制文本视图?
我的文本存储在一个字符串中。我可以为文本应用不同的字体、大小、对齐方式。将它传递给我的 api 时,我想将它拆分为字符串列表,就像它在应用程序中的显示方式一样。这可能吗 ?
在视图中,文本使用以下格式设置:
TextView textView = new TextView(getContext());
LayoutParams textLayoutParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
if (itemWidth > 0) {
textLayoutParams.width = itemWidth;
}
if (itemHeight == -1) {
textLayoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
}
textLayoutParams.leftMargin = xPosition;
textLayoutParams.topMargin = yPosition;
textView.setLayoutParams(textLayoutParams);
textView.setPaintFlags(Paint.ANTI_ALIAS_FLAG);
font = getFontName(font);
if (!StringUtils.isEmpty(font)) {
CalligraphyUtils.applyFontToTextView(getContext(), textView, CalligraphyConfig.get(), "fonts/" + font);
}
if (!StringUtils.isEmpty(color))
textView.setTextColor(Color.parseColor(color));
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, (int)size );
if (alignment.equalsIgnoreCase("center")) {
textView.setGravity(Gravity.CENTER);
} else if (alignment.equalsIgnoreCase("left")) {
textView.setGravity(Gravity.START);
} else if (alignment.equalsIgnoreCase("right")) {
textView.setGravity(Gravity.END);
} else if (alignment.equalsIgnoreCase("left_center")) {
textView.setGravity(Gravity.START | Gravity.CENTER);
}
addView(textView);
对于多行字符串,它将显示在不同的行上。在后台进程中,我想知道哪个子字符串显示在第一行,哪个子字符串显示在第二行等等。这甚至可能吗?
解决方案
推荐阅读
- terraform - Terraform IBM - 服务实例别名的 iam_role_crn
- opengl - 3D OpenGL 变换:乘以统一比例矩阵和除以 w 有什么区别?
- php - 下拉选择不会通过 Laravel 8 中的编辑页面更新
- python - 大熊猫中的函数按行数将行堆叠成列?
- javascript - 在 onclick 事件期间重新定位相机(OrbitControls)
- events - 使用 ejs 动态打印变量
- python - PyTorch DataLoader 在每个时期使用相同的随机变换
- apache-flink - 我的 Flink 应用程序需要水印吗?如果没有,我需要 WatermarkStrategy.noWatermarks 吗?
- authzforce - XACML Authzforce PDP 自定义策略
- node.js - 快递中的按钮对我不起作用并且没有错误代码