Resフォルダーに以下のファイルを定義しました。
styles_apptheme.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated with http://Android-holo-colors.com -->
<resources xmlns:Android="http://schemas.Android.com/apk/res/Android">
<style name="ButtonAppTheme" parent="Android:Widget.Holo.Light.Button">
<item name="Android:background">@drawable/apptheme_btn_default_holo_light</item>
</style>
</resources>
themes_apptheme.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated with http://Android-holo-colors.com -->
<resources xmlns:Android="http://schemas.Android.com/apk/res/Android">
<style name="AppTheme" parent="@style/_AppTheme"/>
<style name="_AppTheme" parent="Theme.AppCompat.Light">
<item name="Android:editTextBackground">@drawable/apptheme_edit_text_holo_light</item>
<item name="Android:buttonStyle">@style/ButtonAppTheme</item>
</style>
</resources>
Layout.xmlファイルで、次のようにボタンを定義しました
<Button
Android:id="@+id/btnAddTitle"
Android:layout_below="@id/edEnterTitleValue"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/btn_AddTitle"
Android:layout_margin="20dp"
/>
上記のボタンビューに次の行を追加すると、
Android:background="@style/ButtonAppTheme"
描画可能なリソースを背景属性に設定する必要があると言って、アプリケーションがクラッシュします。
だから私は以下の描画可能なファイルを作成しました-abc.xml
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_window_focused="false" Android:state_enabled="true"
Android:drawable="@drawable/apptheme_btn_default_normal_holo_light" />
<item Android:state_window_focused="false" Android:state_enabled="false"
Android:drawable="@drawable/apptheme_btn_default_disabled_holo_light" />
<item Android:state_pressed="true"
Android:drawable="@drawable/apptheme_btn_default_pressed_holo_light" />
<item Android:state_focused="true" Android:state_enabled="true"
Android:drawable="@drawable/apptheme_btn_default_focused_holo_light" />
<item Android:state_enabled="true"
Android:drawable="@drawable/apptheme_btn_default_normal_holo_light" />
<item Android:state_focused="true"
Android:drawable="@drawable/apptheme_btn_default_disabled_focused_holo_light" />
<item
Android:drawable="@drawable/apptheme_btn_default_disabled_holo_light" />
</selector>
Android:background="@drawable/abc"
を設定すると、ボタンに設定されたスタイルが表示されません。
ボタンのスタイルを設定する方法を教えてください。
ありがとう。
この方法で行うと、かなり簡単になります。
最初に、drawableフォルダーにbutton_selector.xmlを作成します。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item Android:state_pressed="true" >
<shape Android:shape="rectangle" >
<corners Android:radius="5dp" />
<stroke Android:width="1dip" Android:color="@color/green_temp" />
<gradient Android:angle="-90" Android:startColor="@color/green_temp" Android:endColor="@color/green_temp" />
</shape>
</item>
<item Android:state_focused="true">
<shape Android:shape="rectangle" >
<corners Android:radius="5dp" />
<stroke Android:width="1dip" Android:color="#971E05" />
<solid Android:color="#58857e"/>
</shape>
</item>
<item >
<shape Android:shape="rectangle" >
<corners Android:radius="5dp" />
<stroke Android:width="1dip" Android:color="@color/bright_green" />
<gradient Android:angle="-90" Android:startColor="@color/green_temp" Android:endColor="@color/button_green" />
</shape>
</item>
</selector>
これらの色を、valuesフォルダーのcolors.xmlに追加します。
<!-- Green -->
<color name="green_temp">#23A96E</color>
<color name="green_dark">#159204</color>
<color name="bright_green">#02D8B0</color>
<color name="button_green">#10a54a</color>
最後に、layout.xmlの目的のボタンに、上記のセレクターから背景を配置します。
<Button
Android:id="@+id/btnAddTitle"
Android:layout_below="@id/edEnterTitleValue"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/btn_AddTitle"
Android:background="@drawable/button_selector"
Android:layout_margin="20dp"
/>
その後、ボタンはすべて完了し、必要な色でスタイル設定されます。
Android Button Makerは、Android Apps。Androidこれらのボタンは、通常のpngボタンに比べて高速に読み込まれる形状描画可能なXMLコードに基づいて生成されます。設定パネルでボタンのプロパティをカスタマイズし、ソースコードを取得できます。
このリンクを確認してください ボタンメーカー
頭脳を割る必要はありません...このツールはそれを簡単にします
取り替える
Android:background="@style/ButtonAppTheme"
と
style="@style/ButtonAppTheme"
すべてが大丈夫です!
代替手段としてこれを試してください。 resの下にdrawableフォルダーを作成してから、xmlファイルを作成し、コードの下にコピー&ペーストして、最初に試してから、要件に従ってカスタマイズします。
button_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<solid Android:color="#00acc1"/>
<stroke Android:width="2dp" Android:color="#ffffff"/>
<corners Android:radius="2dp"/> </shape>
button_bg_pressed.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<solid Android:color="#006064"/>
<stroke Android:width="1dp" Android:color="#ffffff"/>
<corners Android:radius="2dp"/> </shape>
button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item Android:state_focused="true" Android:state_pressed="true"
Android:drawable="@drawable/button_bg_pressed" />
<item Android:state_focused="false" Android:state_pressed="true"
Android:drawable="@drawable/button_bg_pressed" />
<item Android:drawable="@drawable/button_bg" /> </selector>
そして、ボタンxmlで、背景をbutton_selector.xmlとして設定します
<Button
Android:id="@+id/btnAddTitle"
Android:layout_below="@id/edEnterTitleValue"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/btn_AddTitle"
Android:background="@drawable/button_selector"
Android:layout_margin="20dp"/>
これはあなたのために仕事をします。この方法でボタン全体のスタイルをカスタマイズできます。
マテリアルデザインによってボタンのデフォルトのアニメーションを作成し、ボタンの色を変更する場合は、これを試してください。
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="@dimen/padding_12"
Android:text="button text here"
Android:theme="@style/NavyBtn" />
style.xmlで
<style name="NavyBtn" parent="Theme.AppCompat.Light">
<item name="colorButtonNormal">#020e39</item>
<item name="Android:textColor">#FFFFFF</item>
</style>