xml 可绘制还是以编程方式制作可绘制?
xml drawable or programmatically made 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>
两者产生相同的结果。那么我应该使用哪一个?
首先,性能上没有太大区别
两种方法的优点如下:
xml
的优点
- 易于重用视图或从不同的布局中引入和写入。
- 视图与逻辑分离,便于管理长运行。
- 预览让我们预览它们代表的视图。
代码绘图的优势
- 视图可以根据逻辑状态灵活调整
- 无需创建单独的资源文件。
所以,我刚刚发现我们可以通过编程方式制作可绘制对象。这让我想知道哪一个在性能和尺寸方面更好。
这就是我以编程方式制作可绘制对象的方式:
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>
两者产生相同的结果。那么我应该使用哪一个?
首先,性能上没有太大区别
两种方法的优点如下:
xml
的优点- 易于重用视图或从不同的布局中引入和写入。
- 视图与逻辑分离,便于管理长运行。
- 预览让我们预览它们代表的视图。
代码绘图的优势
- 视图可以根据逻辑状态灵活调整
- 无需创建单独的资源文件。