ANDROID TabLayout指示器颜色设置为渐变色
时间: 2024-03-10 12:45:28 浏览: 357
要将 Android TabLayout 的指示器颜色设置为渐变色,可以执行以下步骤:
1. 定义渐变色
在 drawable 目录下创建一个 gradient.xml 文件,定义渐变色。例如:
```
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/colorStart"
android:endColor="@color/colorEnd"
android:angle="0" />
</shape>
```
其中,@color/colorStart 和 @color/colorEnd 分别指定渐变色的起始和结束颜色,android:angle 表示渐变的角度。
2. 设置 TabLayout 的指示器颜色
通过 TabLayout.setSelectedTabIndicatorColor() 方法设置 TabLayout 的指示器颜色。这里将渐变色作为指示器的颜色:
```
TabLayout tabLayout = findViewById(R.id.tabLayout);
tabLayout.setSelectedTabIndicatorColor(ContextCompat.getColor(this, R.color.transparent));
GradientDrawable gradientDrawable = new GradientDrawable();
gradientDrawable.setColor(ContextCompat.getColor(this, R.color.transparent));
gradientDrawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
gradientDrawable.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
gradientDrawable.setColors(new int[]{
ContextCompat.getColor(this, R.color.colorStart),
ContextCompat.getColor(this, R.color.colorEnd)
});
tabLayout.setSelectedTabIndicator(gradientDrawable);
```
其中,tabLayout.setSelectedTabIndicatorColor() 方法设置指示器的颜色为透明,防止出现默认的颜色叠加在渐变色上的情况。然后创建一个 GradientDrawable 对象,设置渐变色的起始和结束颜色,以及渐变的方向。最后调用 tabLayout.setSelectedTabIndicator() 方法将渐变色作为指示器的背景。
3. 设置 TabLayout 的指示器高度
通过 TabLayout.setSelectedTabIndicatorHeight() 方法设置 TabLayout 的指示器高度。例如:
```
tabLayout.setSelectedTabIndicatorHeight(getResources().getDimensionPixelSize(R.dimen.indicator_height));
```
其中,R.dimen.indicator_height 是在 dimens.xml 文件中定义的指示器高度的值。
这样,就可以将 Android TabLayout 的指示器颜色设置为渐变色,并且可以设置指示器的高度。
阅读全文