このコードが機能しない理由を理解できません。誰か助けてもらえますか? 「グリーンスタート」と「グリーンエンド」というタイトルのカスタムカラーを使用するボタンを取得しようとしています。色はres/value/string.xmlファイルに作成されています。私は同様の質問を検討しましたが、それらは未回答のままであるか、不明であるか、解決策が機能しませんでした。前もって感謝します。
XMLファイルのサンプル:
<Button
Android:id="@+id/mycollection"
Android:layout_width="match_parent"
Android:layout_height="fill_parent"
Android:layout_weight="1" >
<Gradient
Android:angle="270"
Android:endColor="@color/greenstart"
Android:startColor="@color/greenend" >
</Gradient>
</Button>
新しいxmlファイルを作成し、それをドローアブルに配置して、ボタンとして背景に追加します
gradient.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<!-- Gradient Bg for listrow -->
<gradient
Android:startColor="#f1f1f2"
Android:centerColor="#e7e7e8"
Android:endColor="#cfcfcf"
Android:angle="270" />
</shape>
layout.xml
<Button
Android:id="@+id/Button01"
Android:layout_width="wrap_content"
Android:layout_height="fill_parent"
Android:layout_weight="1"
Android:background="@drawable/gradient"
Android:text="Übernehmen" >
これを試して :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_pressed="true" >
<shape>
<solid
Android:color="#70c656" />
<stroke
Android:width="1dp"
Android:color="#53933f" />
<corners
Android:radius="3dp" />
<padding
Android:left="10dp"
Android:top="10dp"
Android:right="10dp"
Android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
Android:startColor="#70c656"
Android:endColor="#53933f"
Android:angle="270" />
<stroke
Android:width="1dp"
Android:color="#53933f" />
<corners
Android:radius="4dp" />
<padding
Android:left="10dp"
Android:top="10dp"
Android:right="10dp"
Android:bottom="10dp" />
</shape>
</item>
</selector>
ここでは、グラデーションについて説明します。上記のように@Dusean Singhは言った。角度270を使用する場合、グラデーションは上から下に始まります:TOP-> Center-> bottom
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<gradient
Android:startColor="#FF0000"
Android:centerColor="#00FF00"
Android:endColor="#0000FF"
Android:angle="270" />
</shape>
角度360を使用する場合、グラデーションは左から右に始まります:左->中央->右
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<!-- Gradient Bg for listrow -->
<gradient
Android:startColor="#FF0000"
Android:centerColor="#00FF00"
Android:endColor="#0000FF"
Android:angle="360" />
</shape>
ここでは、効果について説明します。とボタンに同じを適用する方法
<LinearLayout
Android:id="@+id/design_bottom_sheet"
Android:layout_alignParentBottom="true"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:weightSum="2">
<Button
Android:drawableLeft="@drawable/ic_grid"
Android:layout_width="match_parent"
Android:text="Find"
Android:background="@drawable/gradient_button"
Android:textColor="@color/white"
Android:textAllCaps="false"
Android:layout_height="wrap_content"
Android:layout_weight="1" />
<Button
Android:drawableLeft="@drawable/ic_card"
Android:layout_width="match_parent"
Android:textColor="@color/white"
Android:text="Match"
Android:background="@drawable/gradient_button"
Android:textAllCaps="false"
Android:layout_height="wrap_content"
Android:layout_weight="1" />
</LinearLayout>
作成gradient.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" >
<gradient
Android:angle="270"
Android:endColor="@color/greenstart"
Android:startColor="@color/greenend" />
</shape>