Есть ли другой способ сделать это, кроме как установить его в качестве фона для кнопки?
Есть и другие способы, но это проще. Например, вы можете создавать свои собственные кнопки, реализующие пользовательский вид, но это не стоит усилий.
Должен ли я включить это в main.xml или создать еще один XML-файл? Если да, где я могу его создать?
Вы должны создать новый файл XML. Вы называете это как хотите, и помещаете это в папку res/drawable
. Сделав это, вы можете ссылаться на этот файл из XML или программно:
<Button
android:background="@drawable/the_name_of_the_xml"/>
Или ...
button.setBackgroundResource(R.drawable.the_name_of_the_xml);