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 だけが変更された新しいスタイルを追加します。

<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>

この値を抽出して、画面サイズに基づいて必要な値を受け取ることは可能ですか? そして、1 つのスタイルのみを使用します。

  <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 に答える