ボタンにグラデーションの外観を適用できる xml ファイル res/color/btn_black があります。
次を呼び出すことで、layout.xml で正常に使用できます。
<Button
android:background="@color/btn_black"
/>
他の場所では、Java でボタンを動的に作成しており、同じスタイルを適用したいと考えています。これを試してみると:
myButton.setBackgroundColor(getResources().getColor(R.color.btn_black));
次のエラーが表示されます。
android.content.res.Resources$NotFoundException:
File res/color/btn_black.xml from color state list resource ID #0x7f040001
これは、ここで回答した他の質問から正しい方法のようですが、うまくいきません。私は何を間違っていますか?
編集: これは参照用のファイル btn_black.xml です
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#343434" />
<stroke
android:width="1dp"
android:color="#171717" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="#343434"
android:endColor="#171717"
android:angle="270" />
<stroke
android:width="1dp"
android:color="#171717" />
<corners
android:radius="4dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>