위에 말씀하신것처럼 on 버튼과 off 버튼을 겹치게 배치해서 on 버튼을 클릭하면 on 버튼을 사라지게 하고
off 버튼을 보이게 하고 off 버튼을 누르면 반대로 하는 방법도 있겟지만,,
그리고, 버튼을 겹치게 하기 위해서는 relative 레이아웃이나 framelayout을 사용하면 됩니다.
그보다 더 좋은 방법은 버튼을 하나 두고,on 버튼을 클릭하면
버튼의 텍스트를 off 로 바꾸는게 좋은 방법입니다. setter 함수인 setText() 메서드를 이용해서요...
위에 버튼을 보이게 하고 안보이게 하는것도 setter 함수중 setVisibile(View.Visible or View.inVisible) 을 사용하면됩니다.
제가 코드를 안보고 치는거라 철자는 틀릴수 있겠는데, View 클래스의 static property가 정의 되어있습니다.