5

我为大屏幕上的所有文本按钮制作了自定义样式

<style name="button_large" parent="@android:style/Widget.TextView">
    <item name="android:textColor">@color/button_color</item>
    <item name="android:textSize">30dp</item>
    <item name="android:clickable">true</item>
    <item name="android:soundEffectsEnabled">false</item>
</style>

现在我想要普通屏幕的小按钮,我添加了只有 android:textSize 改变的 noew 样式。

<style name="button_normal" parent="@android:style/Widget.TextView">
    <item name="android:textColor">@color/button_color</item>
    <item name="android:textSize">10dp</item>
    <item name="android:clickable">true</item>
    <item name="android:soundEffectsEnabled">false</item>
</style>

是否可以提取此值并根据屏幕尺寸接收所需的值?并且只使用一种风格。

  <item name="android:textSize">value_based_on_screen_size</item>

如果是大屏幕,它会是 30,对于普通屏幕,它会是 10

4

2 回答 2

10

是的,这是可能的。这是您可以安排的方式。在您的默认设置values/styles.xml中,

<style name="button" parent="@android:style/Widget.TextView">
    <item name="android:textColor">@color/button_color</item>
    <item name="android:textSize">@dimen/button_text_size</item>
    <item name="android:clickable">true</item>
    <item name="android:soundEffectsEnabled">false</item>
</style>

然后创建一个values/dimens.xml这样的,

<resources>
    <dimen name="button_text_size">10sp</dimen>
</resources>

并创建一个values-large这样的,

<resources>
    <dimen name="button_text_size">30sp</dimen>
</resources>

Ps,sp用于字体。就像dp,除了如果用户通过系统设置增加默认字体大小,你的字体会相应改变。

于 2013-01-25T18:49:59.343 回答
1

首先准备这些文件:

res/values-ldpi/dimens.xml
res/values-mdpi/dimens.xml
res/values-hdpi/dimens.xml

然后为不同的文件声明资源值:

<!-- in values-ldpi/dimens.xml -->
<dimen name="mytextSize">30dp</dimen>

<!-- in values-mdpi/dimens.xml -->
<dimen name="mytextSize">20dp</dimen>

然后,在你的风格中使用这种方式:

<item name="android:textSize">@dimen/mytextSize</item>
于 2013-01-25T18:51:55.490 回答