Вы наполовину правы в том, что высота требуется для эффекта тени. Но обратите внимание, что это применимо только к виду, который не является кнопками.Для buttonViews вы можете добавить аниматор списка состояний, который обрабатывает свойства кнопки для всех ее состояний. Также, если вы используете что-то вроде textView, у которого нет полей, вы также можете использовать фон для отображения тени следующим образом:
android:elevation="30dp"
android:background="#000"
Для других видов это означает просто добавление атрибута высоты, как показано выше, и фон не требуется
Эта ссылка поможет: Как обеспечить тень для кнопки