1

使用weight我的布局在每个屏幕尺寸和密度上都非常完美。每个视图都经过完美缩放。不幸的是,字符大小仍然存在一个大问题:无论我用 sp 或 dp 定义文本大小,它仍然根据密度而不是屏幕大小调整大小,所以平板电脑上的文本是微型的!

这个问题的最佳解决方案是什么?

  • 我应该为平板电脑定义不同的布局吗?在那种情况下,我该怎么做?
  • 有没有办法在 xml 或代码中自动调整文本的大小(我不太在乎哪一个,如果它有效)?

非常感谢。

4

3 回答 3

5

您可以为不同的屏幕尺寸限定符创建单独的样式small, normal, large, xlarge, 和一堆新的sw<N>dp, h<N>dp,w<N>dp

支持多屏

于 2013-05-23T15:57:19.097 回答
1

解决方案 1

为不同的屏幕尺寸使用不同的布局

解决方案 2

使用 customView 并动态更改文本大小。例如

    public class CustomView extends TextView{
         ....................

        @Override
        protected void onDraw(Canvas canvas) {

                 calculate the view size and change the text size

        }

    }

更新

要测量大小,您可以使用以下

        float size = getHeight() * .8; // getheight will return view's height
        setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
于 2013-05-23T16:00:19.473 回答
0

您可以使用您需要在值文件夹中创建的dimens.xml,并将值文件夹创建为值-大值-小值-xlarge 等.....

于 2013-05-24T05:57:40.803 回答