Java 字体大小不适应不同的屏幕大小
我读过安卓的文章,其中提到通过使用“匹配父项”和“包装内容”以及“sp”和“dp”以及相关布局来支持不同的屏幕大小。我已经实现了所有这些建议,但当我在Eclipse的XML编辑器中将屏幕大小更改为tablet时,文本视图和按钮的字体大小似乎根本不会更改以适应更大的屏幕大小。小屏幕(如3.2英寸)也是如此。有人有什么建议吗?使用“sp”和“dp”等与密度无关的单位的意义在于,无论屏幕如何,从用户的角度来看,文本大小实际上保持不变Java 字体大小不适应不同的屏幕大小,java,android,xml,eclipse,Java,Android,Xml,Eclipse,我读过安卓的文章,其中提到通过使用“匹配父项”和“包装内容”以及“sp”和“dp”以及相关布局来支持不同的屏幕大小。我已经实现了所有这些建议,但当我在Eclipse的XML编辑器中将屏幕大小更改为tablet时,文本视图和按钮的字体大小似乎根本不会更改以适应更大的屏幕大小。小屏幕(如3.2英寸)也是如此。有人有什么建议吗?使用“sp”和“dp”等与密度无关的单位的意义在于,无论屏幕如何,从用户的角度来看,文本大小实际上保持不变 因此,当您在XML编辑器中更改屏幕时,显示的屏幕区域会更改,但文本大
因此,当您在XML编辑器中更改屏幕时,显示的屏幕区域会更改,但文本大小保持不变。使用密度独立单位(如“sp”和“dp”)的意义在于,从用户角度看,无论屏幕如何,文本大小实际上保持不变 因此,在XML编辑器中更改屏幕时,显示的屏幕区域会更改,但文本大小保持不变。在布局中:
<TextView android:id="@+id/yourID" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="My String" style="@style/myStyle" />
<TextView
android:id="@+id/yourID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My String"
style="@style/myStyle"
/>
values/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">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>
<?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>
<?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>
大胆的
#FFFFFFFF
14便士
#FF000000
1.
-1
1.
值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">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>
<?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>
<?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>
大胆的
#FFFFFFFF
20便士
#FF000000
1.
-1
1.
这将使您在普通设备上使用14sp字体,在x-large设备上使用20sp字体,布局如下:
<TextView android:id="@+id/yourID" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="My String" style="@style/myStyle" />
<TextView
android:id="@+id/yourID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My String"
style="@style/myStyle"
/>
values/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">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>
<?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>
<?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>
大胆的
#FFFFFFFF
14便士
#FF000000
1.
-1
1.
值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">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>
<?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>
<?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>
大胆的
#FFFFFFFF
20便士
#FF000000
1.
-1
1.
这将为您在普通设备上提供14sp字体,在x-large设备上提供20sp字体,您可以大量借用@CSmith的答案(但不想编辑他的答案,因为它是有效的): 在布局中:
<TextView android:id="@+id/yourID" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="My String" style="@style/myStyle" />
<TextView
android:id="@+id/yourID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My String"
style="@style/myStyle"
/>
values/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">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>
<?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>
<?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>
大胆的
#FFFFFFFF
@尺寸/我的尺寸
#FF000000
1.
-1
1.
values/dimens.xml
<resources>
<dimen name="my_textsize">14sp</dimen>
</resources>
<resources>
<dimen name="my_textsize">20sp</dimen>
</resources>
14便士
值xlarge/dimens.xml
<resources>
<dimen name="my_textsize">14sp</dimen>
</resources>
<resources>
<dimen name="my_textsize">20sp</dimen>
</resources>
20便士
这将在普通设备上为您提供14 SP的字体,在x-large设备上为您提供20 SP的字体,并减少单独XML文件中的重复,因为唯一改变的是字体大小
您可以将任何将成为sp/dp维度的内容放在dimens.xml文件中作为。大量借用@CSmith的答案(但不想编辑他的答案,因为它是有效的): 在布局中:
<TextView android:id="@+id/yourID" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="My String" style="@style/myStyle" />
<TextView
android:id="@+id/yourID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My String"
style="@style/myStyle"
/>
values/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">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>
<?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>
<?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>
大胆的
#FFFFFFFF
@尺寸/我的尺寸
#FF000000
1.
-1
1.
values/dimens.xml
<resources>
<dimen name="my_textsize">14sp</dimen>
</resources>
<resources>
<dimen name="my_textsize">20sp</dimen>
</resources>
14便士
值xlarge/dimens.xml
<resources>
<dimen name="my_textsize">14sp</dimen>
</resources>
<resources>
<dimen name="my_textsize">20sp</dimen>
</resources>
20便士
这将在普通设备上为您提供14 SP的字体,在x-large设备上为您提供20 SP的字体,并减少单独XML文件中的重复,因为唯一改变的是字体大小
您可以将任何将成为sp/dp维度的内容作为。我明白了。还有什么方法可以根据屏幕的大小改变字体吗?我想你需要通过编程来实现。这可能会帮助你:使用样式。values/styles.xml用于普通样式,values xlarge/styles.xml用于x-large显示样式。您可以将字体大小设置全部放在样式文件中,并根据设备大小调整大小。我明白了。还有什么方法可以根据屏幕的大小改变字体吗?我想你需要通过编程来实现。这可能会帮助你:使用样式。values/styles.xml用于普通样式,values xlarge/styles.xml用于x-large显示样式。您应该将字体大小设置全部放在样式文件中,并根据设备大小调整大小。是否在“sp”中设置这些大小?是的,我在“sp”中设置字体大小。是否在“sp”中设置这些大小?是的,我在“sp”中设置字体大小。