tag:blogger.com,1999:blog-5859951453664122203.post284869458006855166..comments2024-03-15T04:29:35.682+09:00Comments on Y.A.M の 雑記帳: Android Button の色や画像を変えるyanzmhttp://www.blogger.com/profile/04059587494895790858noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-5859951453664122203.post-4840840228478984292011-04-03T06:28:58.963+09:002011-04-03T06:28:58.963+09:00なるほど。エラーメッセージをみると確かに "drawable" 属性か draw...なるほど。エラーメッセージをみると確かに "drawable" 属性か drawable を定義している子要素が必要だと言われてますね。いつからかADTが変わった可能性はありますね。1年以上の前のエントリなので。yanzmhttps://www.blogger.com/profile/04059587494895790858noreply@blogger.comtag:blogger.com,1999:blog-5859951453664122203.post-44133436185810745232011-04-03T02:02:02.941+09:002011-04-03T02:02:02.941+09:00お返事ありがとうございます!
しかし、そうですか、、
私が 2.1-update1(API 7) ...お返事ありがとうございます!<br /><br />しかし、そうですか、、<br />私が 2.1-update1(API 7) で試した限りだと、<br />android:color だと何故か上手くいかず、android:drawableにすると解決しました。<br />例えば、下記のようなレイアウトXMLで、<br />------------------------------------------- main.xml<br /><?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:orientation="vertical"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"<br /> ><br /> <Button android:background="@drawable/button_stateful" <br /> android:layout_width="wrap_content" android:layout_height="wrap_content" <br /> android:text="hogehoge"<br /> android:id="@+id/imageButton1"></Button><br /></LinearLayout><br />-------------------------------------------<br /><br />button_stateful.xml に android:color だと上手くいかず、<br />色リソースを参照するにせよ、android:drawable だと上手くいきます。<br />---------------- button_stateful.xml: エラーになる<br /><?xml version="1.0" encoding="utf-8" ?><br /><selector xmlns:android="http://schemas.android.com/apk/res/android"><br /> <item <br /> android:state_pressed="true" <br /> android:drawable="@drawable/icon" /><br /> <item android:color="@color/color1" /> <br /></selector><br />---------------- button_stateful.xml: 問題ない<br /><?xml version="1.0" encoding="utf-8" ?><br /><selector xmlns:android="http://schemas.android.com/apk/res/android"><br /> <item <br /> android:state_pressed="true" <br /> android:drawable="@drawable/icon" /><br /> <item android:drawable="@color/color1" /> // color -> drawable<br /></selector><br />--------------------------------------------- エラーメッセージ<br />ERROR/AndroidRuntime(31080): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #?: <item> tag requires a 'drawable' attribute or child tag defining a drawable<br />----------------------------------------------<br /><br />drawableとcolorを混ぜるからダメなのかとも思いましたが、<br />android:drawable="@drawable/icon" <br />を<br />android:color="@color/color2" <br />としてもダメでした。<br />何か、color全般が上手くいかない感じでした。<br /><br />しかし、colorでも main.xml で android:backgroundで使用していたbutton_stateful.xmlを、<br />android:textColor で使用するとちゃんと色が変わりました。<br /><br />ちょうど、<br />http://stackoverflow.com/questions/3953606/android-trouble-with-color-state-list-resources-how-to-specify-a-background-col<br />と同じような現象でした。<br /><br />textColorだとcolorで良いけど、backgroundではdrawableではないとダメなのかな、、、と<br />今は思っているのですが。。<br /><br /><br />長くなって恐縮ですが、ご連絡まで!Anonymoushttps://www.blogger.com/profile/11863243191444932204noreply@blogger.comtag:blogger.com,1999:blog-5859951453664122203.post-59433969202114223002011-04-02T11:06:38.084+09:002011-04-02T11:06:38.084+09:00chiken さん
コメントありがとうございます。
image_stateful.xml の最後は...chiken さん<br /><br />コメントありがとうございます。<br />image_stateful.xml の最後は画像ではなくて testcolor5 という色リソースを指定しているので、android:color が正しいです。 ここも画像を指定する場合は android:drawable にしてください。yanzmhttps://www.blogger.com/profile/04059587494895790858noreply@blogger.comtag:blogger.com,1999:blog-5859951453664122203.post-26334823073012629282011-03-18T14:57:33.086+09:002011-03-18T14:57:33.086+09:00いつも勉強させてもらっています!
image_stateful.xml の部分の最後の item ...いつも勉強させてもらっています!<br /><br />image_stateful.xml の部分の最後の item ですが、<br />android:color ではなく、 android:drawable(でリソース名) ではないでしょうか。<br />android:color だと 「image_stateful なんてリソースはない!」と怒られてしまうようで、PATH名をチェックし続けてしまいました・・・(なんでそんなエラーメッセージなのか・・・)<br /><br />これからも頑張ってください!Anonymoushttps://www.blogger.com/profile/11863243191444932204noreply@blogger.com