android studioにてアプリを開発中なのですが、buttonの背景設定で悩んでおります。
drawableの中のxmlファイルでボタンの背景色等を作り、Activity_main.xml側でbuttonのbackgroundに指定しているのですがdefalutの背景のままでxmlプレビューに反映されないのです。【実機にビルドしてもやはり変わらない。】
Activity_main.xml側で作ったファイルを指定すれば変わるはずと思っていたのですが、変わらず困っています。
色々以下やってみたのですが原因が解らず。。。。
1.ボタンを一度削除し再度新しいbuttonでやってみても変わらない。。
2.Invalidate cashを行いandroid studioを再起動させてみたが変わらず。。
3.別の背景のxmlファイルを指定しても変わらない。
どうも私のやり方がまずいような気がしているのですが、原因の糸口が見えず
すいませんがアドバイス頂けないでしょうか?
お手数ですがよろしくお願い致します。
activity_main.xml <Button android:id="@+id/button" android:layout_width="159dp" android:layout_height="52dp" android:layout_marginStart="28dp" android:layout_marginTop="32dp" android:text="@string/button" android:background="@drawable/btn_style" app:layout_constraintStart_toStartOf="@+id/imageView3" app:layout_constraintTop_toTopOf="@+id/imageView3" />
btn_style.xml[res/drawable] <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <layer-list> <item android:top="@dimen/btn_padding_pressed" android:right="@dimen/btn_padding_pressed" android:bottom="@dimen/btn_padding_pressed" android:left="@dimen/btn_padding_pressed"> <shape android:shape="rectangle"> <stroke android:color="@color/black" android:width="@dimen/btn_border" /> <corners android:radius="@dimen/btn_radius" /> <gradient android:startColor="#0000ff" android:centerColor="#ffffff" android:endColor="#0000ff" android:angle="270" /> </shape> </item> </layer-list> </item> <item android:state_pressed="false"> <layer-list> <item android:top="@dimen/btn_padding_default" android:right="@dimen/btn_padding_default" android:bottom="@dimen/btn_padding_default" android:left="@dimen/btn_padding_default"> <shape android:shape="rectangle"> <stroke android:color="@color/black" android:width="@dimen/btn_border" /> <corners android:radius="@dimen/btn_radius" /> <gradient android:startColor="#0000ff" android:centerColor="#ffffff" android:endColor="#0000ff" android:angle="270" /> </shape> </item> </layer-list> </item> </selector>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。