使用weight
我的布局在每个屏幕尺寸和密度上都非常完美。每个视图都经过完美缩放。不幸的是,字符大小仍然存在一个大问题:无论我用 sp 或 dp 定义文本大小,它仍然根据密度而不是屏幕大小调整大小,所以平板电脑上的文本是微型的!
这个问题的最佳解决方案是什么?
- 我应该为平板电脑定义不同的布局吗?在那种情况下,我该怎么做?
- 有没有办法在 xml 或代码中自动调整文本的大小(我不太在乎哪一个,如果它有效)?
非常感谢。
使用weight
我的布局在每个屏幕尺寸和密度上都非常完美。每个视图都经过完美缩放。不幸的是,字符大小仍然存在一个大问题:无论我用 sp 或 dp 定义文本大小,它仍然根据密度而不是屏幕大小调整大小,所以平板电脑上的文本是微型的!
这个问题的最佳解决方案是什么?
非常感谢。
您可以为不同的屏幕尺寸限定符创建单独的样式small
, normal
, large
, xlarge
, 和一堆新的sw<N>dp
, h<N>dp
,w<N>dp
解决方案 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);
您可以使用您需要在值文件夹中创建的dimens.xml,并将值文件夹创建为值-大值-小值-xlarge 等.....