安卓文本在某些设备上被裁剪

5

我在一个手机上遇到了问题(迄今为止)。 我的应用程序使用印地语字体。 在模拟器,平板电脑和许多其他手机上都可以显示得很好。 但是,我用于测试目的的一款手机显示的文本从两侧被切断。

我几乎尝试了所有方法来将其放置在正确的位置,但都没有起作用。 这里发布了我两个测试手机的屏幕截图和文本。

有错误的屏幕截图:

http://virtualcolors.net/akki/stmd/error.jpg

其他手机的屏幕截图:以及预期的屏幕截图:

http://virtualcolors.net/akki/stmd/correct.jpg

可能的原因是什么,我该怎么解决? 请告诉我!

我正在使用的TextView配置:

<TextView
    android:id="@+id/A_lbl_mandir"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/Abt_mandir"
    android:textAlignment="center"
    android:textColor="#80000A"
    android:textSize="35sp" />

编辑:我的完整活动xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:layout_width="wrap_content"
    android:id="@+id/text"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:text="@string/hello_world" />
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/text" >
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:padding="5sp"
    android:text="@string/test"/>
</ScrollView>

</RelativeLayout>

针对这款手机,我尝试了很多其他方法,但都无法解决这个问题!


谢谢您,Vyger!因为积分不足,所以无法发布图片。 :) - Akshit Arora
你试过这个吗?textView.setText(Html.fromHtml(yourtext)); - Libin
是的!!我也尝试过使用setText...但文本仍然被裁剪了。 - Akshit Arora
希望您在使用setText时尝试使用Html.fromHtml。 - Libin
是的,我做到了。我的输出很好... setText(Html.fromHtml(text)) 的使用没有错误,我的唯一问题是文本被截断了。而且,这只发生在印地语文本上,而且只发生在特定的手机上。在我的其他手机或模拟器上,它运行得非常好... 上面的两个屏幕截图是两个不同的手机,一个出现了问题,第二个是期望的,并且是我在其他手机和模拟器上得到的输出。 - Akshit Arora
4个回答

6

1

好的!发现另一部出现同样问题的手机。在那部手机上,文本也被剪切了。我猜手机有些问题。因为即使像Whatsapp这样的流行应用程序在该设备上也遇到了同样的问题。印地语文本被剪切的方式与上面的图像相同。

可能的解决方法:(如果有人知道我现在在做什么)。我意识到浏览器在那上能很好地显示印地语字体。所以最好在HTML、JavaScript上制作一个本地应用程序,专门针对这种设备,并使用WebView查看HTML。应用程序会变得有点慢,但我们必须这样做,直到我们找到实际的问题。

请注意:这不是一个解决方案,而是一个修复方法。在印地语中更好地称为“JUGAAD”。


1
在一些手机上(尤其是三星手机),一些自定义字体会被裁剪或截断。我使用自定义斜体字体时遇到了这个问题。有人说你可以编辑字体以添加某种填充(由于我缺乏编辑字体的知识,无法确认),但是: - EditText/TextView 从 xml 添加一些填充 - Ellipsize (在某些设备上,操纵它可以正确显示文本)
此外,您可以发布启用开发人员选项的屏幕截图以绘制布局边界,如果上述解决方案无法帮助您解决问题,则可能有所帮助。

1
试一下这个。
<ScrollView
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_below="@id/text" 
android:padding="5dp">
<TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="20sp"
  android:gravity="left" 
  android:padding="5sp"
  android:text="@string/test"/>
</ScrollView>

尝试使用android:layout_marginLeft="10dp"和android:layout_marginRight="10dp"来设置填充。 - maddy d
请放置您的完整XML文件,至少包含一个包含TextView的布局。 - maddy d
完成。请查看。 - Akshit Arora
嘿@yours.akshit,如果你仍然有问题,那么可以尝试一些技巧来确定实际问题。为scrollview、textView和相对布局设置不同的背景颜色。 - maddy d
嗯...我已经尝试了所有的东西,从堆栈溢出搜索中得到的每个结果,改变了背景、填充、字体大小,但是仍然......这部手机对我来说是个问题。可能是手机的问题吗?有没有什么办法可以检查呢?因为我下载了一个印度语思想应用程序,只是为了检查同样的问题。在那个应用程序中也裁剪了文字..在我的其他电话上工作正常。你们是我最后的希望! - Akshit Arora
好的,看起来这个设备可能存在一些问题,如果其他应用程序的文本也被裁剪了,请尝试我的更新答案。我希望它能为你工作。 - maddy d

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接