Неверная документация по android docs. Здесь говорится, что pickDropPoint.getDrawableState()[android.R.attr.state_pressed]
возвращает true
или false
, но вместо этого он возвращает 1
или 0
, a **int**
.
я должен был сделать следующее, чтобы получить его работу
<ImageButton
android:id="@+id/pickDropPoint"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="6"
android:background="#EEeeeee4"
android:contentDescription="pick or drop point"
android:src="@drawable/pickupdrop" />
вытяжки XML для прессованного чувства
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:src="@drawable/start32" android:state_pressed="true"/>
<item android:src="@drawable/end32" android:state_pressed="false"/>
<corners
android:bottomLeftRadius="3dp"
android:bottomRightRadius="3dp"
android:topLeftRadius="3dp"
android:topRightRadius="3dp" />
</selector>
В коде, вам не нужно для цикла, как было предложено @slup
whichPoint = (pickDropPoint.getDrawableState()[android.R.attr.state_pressed] > 1 ? PICKUP : DROP);
Спасибо, я тоже кое-что узнал. Кажется, все проще. – Joubarc