Cómo aplicar una imagen personalizada a la casilla de verificación en Android

Estoy tratando de aplicar una imagen personalizada a la casilla de verificación en Android, para esto creo unacheck_custom.xml archivo en el que defino una imagen personalizada para diferentes estados de casilla de verificación como:

<item android:state_checked="true" 
      android:drawable="@drawable/btn_check_on" /> <!-- checked --> 
<item android:state_checked="false" 
      android:drawable="@drawable/btn_check_off" /> <!-- unchecked --> 
<item android:state_focused="true"
      android:drawable="@drawable/btn_check_onfocus" />    <!--on focus--> 
<item android:drawable="@drawable/btn_check_off" /> <!-- default --> 

Tres imágenes diferentes en tres estados en marcado, en foco y sin marcar, y luego asigno este archivo xml al atributo de fondo de las casillas de verificación, pero no obtengo el resultado requerido, esta técnica aplica la imagen personalizada y la imagen predeterminada ambos

Respuestas a la pregunta(4)

Su respuesta a la pregunta