#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
- Легко повторно использовать представления или переносить и записывать из разных макетов.
- Представление отделено от логики, что упрощает управление в долгосрочной перспективе.
- Предварительные просмотры дают нам представление о том, какой вид они представляют.
Преимущества рисования с помощью кода
- Представление можно гибко настраивать в соответствии с состоянием логики.
- Нет необходимости создавать отдельный файл ресурсов.