0

在我的应用程序中,我为用户提供了选择字体大小“小”、“中”、“大”的选项。为了实现它,我创建了自定义样式并将其应用于用户选择。请看下面的代码。

样式.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="small_title_text">
      <item name="android:textSize">16sp</item>
  </style>
  <style name="small_body_text">
     <item name="android:textSize">12sp</item>
  </style>
  <style name="small_button_text">
     <item name="android:textSize">12sp</item>
  </style>

  <style name="medium_title_text">
     <item name="android:textSize">20sp</item>
  </style>
  <style name="medium_body_text">
      <item name="android:textSize">16sp</item>
  </style>
  <style name="medium_button_text">
      <item name="android:textSize">16sp</item>
  </style>

  <style name="large_title_text">
      <item name="android:textSize">24sp</item>
  </style>
  <style name="large_body_text">
      <item name="android:textSize">20sp</item>
  </style>
  <style name="large_button_text">
      <item name="android:textSize">20sp</item>
  </style>

  <style name="Theme" parent="android:Theme.NoTitleBar">
  </style>

 <style name="Theme.SmallText">
     <item name="textTitle">@style/small_title_text</item>
     <item name="textBody">@style/small_body_text</item>
     <item name="buttonText">@style/small_button_text</item>
     <item name="radioButtonText">@style/small_radio_btn_text</item>

  </style>

  <style name="Theme.LargeText">
      <item name="textTitle">@style/large_title_text</item>
      <item name="textBody">@style/large_body_text</item>
      <item name="buttonText">@style/large_button_text</item>
      <item name="radioButtonText">@style/large_radio_btn_text</item>
  </style>

  <style name="Theme.DefaultText">
      <item name="textTitle">@style/medium_title_text</item>
      <item name="textBody">@style/medium_body_text</item>
      <item name="buttonText">@style/medium_button_text</item>
      <item name="radioButtonText">@style/default_radio_btn_text</item>
  </style>
 </resources>

我使用此代码应用用户选择的主题。

protected override void OnCreate (Bundle bundle)
{
       this.SetTheme(Resource.Style.Theme_LargeText);
       //Or what ever user select i store user selection in app preferences.
   base.OnCreate (bundle);
   SetContentView (Resource.Layout.HomeScreenTabView);
}

而对于 textview 我正在这样做。

<TextView
            style="?textTitle"
            android:id="@+id/phoneNumberDial"
            android:hint="Dial Number"
            android:gravity="center"
            android:textStyle="normal"
            android:textColor="#ffffffff"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.95"
            android:layout_gravity="center"
            android:background="#02000000" />

这适用于每台设备,但不适用于 HTC 愿望和 HTC One X。我该如何处理这 2 台设备?有什么我想念的吗?

4

0 回答 0