если я понимаю ваш вопрос, может быть, может помочь вам
я делаю ту же задачу, определяя селектор фона xml, который содержит рисованные объекты для каждого состояния, этот файл более обширный, потому что вы можете определять рисованные объекты, фигуры и т. Д.... Самая важная особенность заключается в том, что вы можете установить любой рисунок или фигуру, какую захотите ...
здесь я определил свой селектор фона ... и я назвал его selector.xml и сохранил в папке для рисования.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/shape_7"/>
<item android:state_pressed="true" android:drawable="@drawable/shape_7" />
<item android:state_pressed="false" android:drawable="@drawable/shape_6" />
</selector>
позже, когда я создаю ImageButton, я присоединяю селектор, упомянутый выше ... (вы можете сделать это программно или в вашем XML-макете)
ImageButton imageButton = new ImageButton(this);
imageButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.selector));
или способ xml
<ImageView
android:background="@drawable/selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4px"
android:src="@drawable/switch_icon"/>
ура