gpt4 book ai didi

android - 如何解决形状圆形矩形太大而无法在 android TextBox 中呈现为纹理

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:43 25 4
gpt4 key购买 nike

我为 TextView 背景创建了一个形状

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#800e1520"
android:endColor="#801e252f"
android:angle="45"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<corners android:radius="8dp" />

我的 TextView 是:

 <TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/rel1"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"
android:background="@drawable/rounded_corners"
android:gravity="right"
android:lineSpacingExtra="6dp"
android:supportsRtl="true"
android:text="@string/hello_world"
android:textColor="#FFFFFF" />

当文本像这样短时 TextBoxImage

但是当文本太大时不显示背景和eclipse logcat显示

Shape round rect too large to be rendered into a texture (424x5884, max=2048x2048)

如何解决?谢谢

最佳答案

编辑:最简单的解决方案是去除圆角。如果移除圆角并使用简单的矩形,硬件渲染器将不再为背景层创建单个大纹理,也不会再遇到纹理大小限制。


一个简单的解决方法应该是恢复该 View 的软件渲染:

View view = findViewById(R.id.textView1);
view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

...但是我们在这里遇到了类似的问题,我们得到了与您相同的结果, View (及其 subview )没有呈现。

您还可以设置 View 的图层类型from XML :

<TextView android:layerType="software" />

将 layerType 设置为“none”而不是软件似乎会导致 View 绘制,但在我们刚刚尝试的快速测试中绘制时没有圆角。

另一种方法可能是使用不同的方法来渲染圆角矩形,例如

  • 自己在onDraw中裁剪和绘制路径
  • 使用PaintDrawable (支持圆角,但必须通过代码设置)
  • 将矩形分成三部分——顶部(带圆角)、中间(纯色)和底部(带圆角)

关于android - 如何解决形状圆形矩形太大而无法在 android TextBox 中呈现为纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519025/

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