2

私の電卓アプリは30 個のボタンで構成されています。電卓のキーパッドにテーマを提供したいと考えています。テーマは、ボタンの背景(画像の背景ではなくグラデーション)とフォントを変更します。すべてのボタンが同じ色のテーマもあれば、数字の色や演算子の色などがあるテーマもあります。

色の変更は res/drawable/*.xml のセレクターを使用しています

コードを介してテーマを変更するにはどうすればよいですか? うまくいけば、入力を避ける:

button.setBackground(Drawable background);

button.setTypeface(font); 30回。テーマが 5 つある場合、30 * 5 * 2 = 300 行のコードになります。

私はこれに慣れていないので、他に方法がない場合は、150 行を使用します。

また、ユーザーのテーマの選択を保存するにはどうすればよいですか? 設定を使用していますか?

4

1 に答える 1

1

すべての XML コンポーネントを変更するカスタム XML テーマを作成できます。新しいテーマを作成したら、Android マニフェスト ファイルに移動してテーマを変更します。例えば:

<activity
android:name="com.myapp.MyActivity"
...
android:theme="@style/MyCustomTheme" />

テーマを作成するには、res/values/themes.xml に移動し、識別子を使用して新しいテーマを作成します。

<resources>
    ...
    <style name="MyCustomTheme" parent="android:style/Theme">
        <item name="android:textColorPrimary">#ffff0000</item>
    </style>
    ...
</resources>

この方法を使用すると、さまざまなテーマの広範なライブラリを作成し、必要なテーマに変更できます。

: これは背景を変更するためだけではなく、ボタンのテーマを変更するためにも使用できます。詳細については、次の Web サイトを参照してください。

http://janrain.com/blog/introduction-to-android-theme-customization/

編集for():そのユーザーがコメントしたように、ボタンのテーマを変更する機能をループに入れることができます。

あなたの場合、上記のリンクからこれを導き出しました。Java ではなく XML ファイルのボタンのテクスチャを変更します。

「ボタン付きのカスタム ナイン パッチを使用する

9 パッチ ドローアブルは、視覚的な整合性を維持しながら幅と高さをスケーリングできる特別な種類の画像です。Android ボタンの外観を指定する最も一般的な方法は 9 パッチですが、任意のドローアブル タイプを使用できます。

9 パッチ PNG の例。

エッジの周りにある 1 ピクセルの黒い線に注目してください。これらは画像のスケーリングを制御します。

このビットマップを MyApplication/res/drawable/my_nine_patch.9.png として保存します 新しいスタイルを定義します (上記のカスタム Android テーマの作成でカスタム テーマを定義したのと同じファイルで新しいスタイルを定義できます) …:

<resources>
   ...
       <style name="MyCustomButton" parent="android:Widget.Button">
           <item name="android:background">@drawable/my_nine_patch</item>
       </style>
   ...
</resources>

新しいボタン スタイルをカスタム テーマの buttonStyle 属性に適用します。

<resources>
   ...
       <style name="MyCustomTheme" parent=...>
           ...
           <item name="android:buttonStyle">@style/MyCustomButton</item>
       </style>
   ...
</resources>

これで、テーマが適用されたアクティビティのボタンにカスタム イメージが表示されます。ただし、選択しても外観が変わらないことに気付くかもしれません。複数のドローアブルを使用して、状態に基づいて変化する 1 つのドローアブルを定義する方法の概要については、以下のセレクター ドローアブルをお読みください。"

ここから、テーマの特定のコンポーネント (画像としてのボタン テクスチャなど) を変更できます。

見栄えの良いテーマができたら、前述のように Android マニフェストに適用します。

それでもあなたの質問に答えない場合は、これをさらに編集します。

于 2013-05-29T16:42:16.673 に答える