Существует ли способ, которым я могу найти, какой ресурс конкретный ImageButton набор к в любой момент времени?
Для, например: у Меня есть ImageButton, на который я установил R.drawable.btn_on
onCreate. Позже, в какой-то момент, ImageButton установлен на R.drawable.btn_off
. Я хочу смочь проверить, на какой ресурс ImageButton установлен в моем коде.
Спасибо Chris
Просто используйте setTag ()
и getTag ()
, чтобы связать и получить пользовательские данные для вашего ImageView
.
Вы можете определить свой собственный класс как дочерний для ImageButton
, добавить частную переменную int и установить ее при вызове setImageResource (int)
. Что-то вроде:
public class MyImageButton extends ImageButton {
private int mImageResource = 0;
@Override
public void setImageResource (int resId) {
mImageResource = resId;
super.setImageResource(resId);
}
public int getImageResource() {
return mImageResource;
}
}
Я не тестировал это, но вы поняли - тогда вы можете вызвать getImageResource () на своей кнопке, предполагая, что он был ранее установлен с помощью setImageResource ().
Я не знаю, как получить доступ к ресурсу напрямую, но для того, чего вы пытаетесь достичь, разве не достаточно просто получить состояние?
ImageButton btn = (ImageButton) findViewById(R.id.btn);
int [] states = btn.getDrawableState();
for (int i : states) {
if (i == android.R.attr.state_pressed) {
Log.v("btn", "Button in pressed state");
}
}
http://developer.android.com/reference/android/R.attr.html#state_pressed