1つのイメージボタンの状態によって、画像はここのサイトで変更できましたが。
それぞれの画像(ボタンの状態)によって、
- state_enable=false && state_pressed=true
- state_enable=true && state_pressed=true
処理を分岐したいのですが、
ImageButtonの状態を取得するメソッドは存在するのでしょうか。
ご教示願います。
追記:
ここのサイトを参考しました。
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@drawable/stop"/> <item android:state_pressed="true" android:drawable="@drawable/stop"/> <item android:drawable="@drawable/start"/> </selector>
enable = false というのは普通は「押せない状態」のことだと思いますが、違う意味なら「状態」を定義してください。
ありがとうございます。
enable = falseが押せない状態なのは理解できていないです。
追記したサイトを真似たのですが、
私がやりたいことは、起動時(デフォルト)にはstatボタンの画像が表示されており、
ボタンを押した後はstopボタンの画像が表示され続け、
ボタンの画像(状態)によって、ボタンを押した時の処理を分岐させたいのです。
実行したのですが、クリック時の時しかstopボタンに変わりません。
やりたいことは、クリック後はボタンの画像が変更され続けてほしいです。
なるほど、再生・停止ボタンを実装したいんですね。そういう意味での状態は ImageButton は持ってなかったと思いますので、自分で状態を管理して、それに応じて画像を切り替えることになるかと思います。(Toggle Button や Switch と呼ばれるものもあって、それらは on/off の状態を持ってますが、見た目的にちょっと違いますよね…。)
ありがとうございます。
おっしゃる通り1つのボタンで画像を切り替えたいので、
できればどのように状態を管理し、切り替えることができるのか参考サイトでもあれば教えていただきたいです。
ぴったりの参考記事が見当たらなかったので貼らなかったのですが、例えばこの記事では再生中かどうかの状態は MediaPlayer が持っていて、それに応じて ImageView の画像を切り替えてます。(たぶん、ImageButton でもほぼ同様にできるはずです。)
https://hakoniwadesign.com/?p=466
ありがとうございます。
クラス変数に boolean変数をつくり、
それをボタンが押されるたびに変更することによって、とても簡単にできました!
あなたの回答
tips
プレビュー