You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android TextView中OCR文本换行异常问题求助

解决TextView文本异常换行的问题

嘿,我一眼就揪出问题所在了——你的TextView出现部分行没撑满屏幕就自动换行的情况,核心原因有两个:你手动实现的生硬换行逻辑,还有TextView的布局设置不合理,咱们一步步来修复:

1. 移除多余的手动换行代码

你在C#里写了一段强制按字符数换行的逻辑,设置了myLimit = 8,这意味着只要当前行加上新单词的长度超过8就换行,完全不管屏幕实际宽度,这肯定会导致大量短行出现!而且你还写错了换行符——"/n"是普通字符串,不是真正的换行符,应该用"\n"。

其实TextView本身就具备根据自身宽度自动换行的能力,根本不需要手动拆分拼接文本。把那段手动处理的代码删掉,直接用识别到的内容就行:

TextRecognizer txtRecognizer = new TextRecognizer.Builder(ApplicationContext).Build();
if (!txtRecognizer.IsOperational)
{
    Log.Error("Error", "Detector dependencies are not yet available");
}
else
{
    Frame frame = new Frame.Builder().SetBitmap(bitmap).Build();
    SparseArray items = txtRecognizer.Detect(frame);
    StringBuilder strBuilder = new StringBuilder();
    for (int i = 0; i < items.Size(); i++)
    {
        TextBlock item = (TextBlock)items.ValueAt(i);
        strBuilder.Append(item.Value);
        strBuilder.Append("\n"); // 修正为正确的换行符\n
    }
    txtView.Text = strBuilder.ToString(); // 直接设置文本,让TextView自动处理换行
}

2. 修正TextView的布局设置

你的TextView用了固定宽度350dp,这在不同尺寸的设备上会适配不良,而且加了不必要的layout_weight="1"(ScrollView的子View不需要这个属性)。把这些调整一下:

<ScrollView android:layout_width="match_parent" android:layout_height="wrap_content">
    <TextView 
        android:id="@+id/txtView" 
        android:layout_width="match_parent" <!-- 改成match_parent,填满ScrollView宽度 -->
        android:layout_height="wrap_content" 
        android:text="No Text" 
        android:scrollbars="vertical" <!-- 横向滚动可去掉,自动换行后无需横向滚动 -->
        android:textStyle="bold" 
        android:textColor="#ffffffff" 
        android:textIsSelectable="true" 
        android:layout_marginLeft="25dp"
        android:layout_marginRight="25dp" <!-- 加右边距,避免文本贴屏幕边缘 -->
        android:ellipsize="end"/>
</ScrollView>

最后验证效果

做完这两步后,TextView会根据屏幕宽度自动换行,识别出来的文本就能正常铺满每行,不会再出现莫名其妙的短行了。

内容的提问来源于stack exchange,提问作者kiran kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:42:29