1

我正在尝试调整线性布局中的行大小,具体取决于布局中的行数(布局具有固定高度)。这些行应该总是完全填满父布局。所以 1 行是父级的完整大小,2 行都是大小的一半等。这行得通,我现在也在尝试调整文本的大小,但是当我调整它的大小时它会被切断,即使 textview 很大足够了(我打开了果冻豆的显示视图边界功能)

private void setHeightOfRows(ViewGroup parent) {
    int height = parent.getHeight();
    int childCount = parent.getChildCount();
    for (int i = 0; i < childCount; i++) {
        LinearLayout.LayoutParams p = (LayoutParams) parent.getChildAt(i).getLayoutParams();
        p.height = height / childCount;
        parent.getChildAt(i).setLayoutParams(p);
        ((ViewGroup) parent.getChildAt(i)).setClipChildren(false);
        Log.i("FontSize", "Set font size to " + 10 / childCount);
        ((TextView) parent.getChildAt(i).findViewById(R.id.name_text)).setTextScaleX(10 / childCount);// .setTextSize(10/childCount);
    }
}

此方法在 ViewTreeObserver 中执行,因此在呈现 UI 之后。

如何在不切断文本的情况下调整文本大小?

4

2 回答 2

1

SetTextScaleX 在 X 方向(水平)拉伸文本。它看起来更像是您想要缩小文本,使其从上到下更小,对吧?在这种情况下,您不需要 setTextScaleX,而是需要 setTextSize。

于 2013-02-14T20:09:37.807 回答
1

简单的问题。必须存在简单的解决方案。:)

  • 您是否考虑过使用android:paddingand android:margin
  • minHeaight 和 minWidth 怎么样?

或者

  • 如果您通过代码进行操作,那么setPaddingMargin 也必须有类似的事情。
  • 有一个setMinHeightsetMinWidth
于 2013-02-14T20:28:58.640 回答