xml с возможностью рисования или с возможностью рисования программно?

#android #user-interface #kotlin #drawable

#Android #пользовательский интерфейс #kotlin #можно рисовать

Вопрос:

Итак, я только что обнаружил, что мы можем сделать drawable программно. И мне стало интересно, какой из них лучше с точки зрения производительности и размера.

вот как я делаю рисование программно:

 val badge = GradientDrawable()
    badge.shape = GradientDrawable.RECTANGLE
    badge.setColor(Color.parseColor("#E46868"))
    badge.cornerRadius = 100f
  

и это версия xml:

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="50dp" />
    <solid android:color="#E46868" />
</shape>
  

Оба генерируют одинаковый результат. Итак, какой из них я должен использовать?

Ответ №1:

Прежде всего, нет большой разницы в производительности.

Преимущества обоих методов заключаются в следующем:

Преимущества xml

  1. Легко повторно использовать представления или переносить и записывать из разных макетов.
  2. Представление отделено от логики, что упрощает управление в долгосрочной перспективе.
  3. Предварительные просмотры дают нам представление о том, какой вид они представляют.

Преимущества рисования с помощью кода

  1. Представление можно гибко настраивать в соответствии с состоянием логики.
  2. Нет необходимости создавать отдельный файл ресурсов.