0

我已经阅读了有关通过使用“match_parent”和“wrap_content”以及“sp”和“dp”以及相对布局来支持不同屏幕尺寸的 Android 文章。我已经实现了所有这些建议,但是当我在 Eclipse 的 XML 编辑器中将屏幕大小更改为平板电脑时,TextViews 和 Buttons 的字体大小似乎根本没有改变以适应更大的屏幕尺寸。较小的屏幕(例如 3.2 英寸)也是如此。有没有人有什么建议?

4

3 回答 3

3

从@CSmith的答案中大量借用(但不想编辑他的答案,因为它是有效的):

在布局中:

<TextView
 android:id="@+id/yourID"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="My String"
 style="@style/myStyle"
/> 

值/样式.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<resources>
 <style name="myStyle">
  <item name="android:textStyle">bold</item> 
  <item name="android:textColor">#FFFFFFFF</item> 
  <item name="android:textSize">@dimen/my_textsize</item> 
  <item name="android:shadowColor">#FF000000</item> 
  <item name="android:shadowDx">1</item> 
  <item name="android:shadowDy">-1</item> 
  <item name="android:shadowRadius">1</item> 
 </style>
</resources>

值/尺寸.xml

<resources>    
    <dimen name="my_textsize">14sp</dimen>
</resources>

值-xlarge/dimens.xml

<resources>    
    <dimen name="my_textsize">20sp</dimen>
</resources>

这将在普通设备上为您提供 14sp 字体,在 x-large 设备上为您提供 20sp 字体,并减少单独 XML 文件中的重复,因为唯一改变的是 font-size 。

您可以将任何将成为 sp/dp 维度的内容作为 .xml 文件放入 dimens.xml 文件中。

于 2012-07-23T00:21:56.730 回答
2

在布局中:

<TextView android:id="@+id/yourID" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="My String" style="@style/myStyle" /> 

值/样式.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<resources>
 <style name="myStyle">
  <item name="android:textStyle">bold</item> 
  <item name="android:textColor">#FFFFFFFF</item> 
  <item name="android:textSize">14sp</item> 
  <item name="android:shadowColor">#FF000000</item> 
  <item name="android:shadowDx">1</item> 
  <item name="android:shadowDy">-1</item> 
  <item name="android:shadowRadius">1</item> 
 </style>
</resources>

值-xlarge/styles.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<resources>
 <style name="myStyle">
  <item name="android:textStyle">bold</item> 
  <item name="android:textColor">#FFFFFFFF</item> 
  <item name="android:textSize">20sp</item> 
  <item name="android:shadowColor">#FF000000</item> 
  <item name="android:shadowDx">1</item> 
  <item name="android:shadowDy">-1</item> 
  <item name="android:shadowRadius">1</item> 
 </style>
</resources>

这将在普通设备上为您提供 14sp 字体,在 x-large 设备上为您提供 20sp

于 2012-07-12T15:08:47.713 回答
1

使用与密度无关的单位(例如“sp”和“dp”)的目的是,无论屏幕如何,从用户的角度来看,文本大小实际上都保持不变。

因此,当您在 XML 编辑器中更改屏幕时,显示的屏幕区域会发生变化,但文本会保持相同的大小。

于 2012-07-12T14:26:20.760 回答