我想将CSS渐变转换为android xml渐变(形状)文件
例如
background-image: linear-gradient(to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100%);
到
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="0"
android:endColor="#b12a5b"
android:startColor="#ff867a"
android:type="linear" />
</shape>
我对CSS不太了解。我只知道android,并且只有三个颜色参数android:endColor
,android:startColor
,android:centerColor
,我该如何定义%和css中显示的各种颜色
是否有任何在线工具,我可以在其中通过提供CSS输入来生成xml文件。
答案 0 :(得分:0)
我以前曾用它在背景中绘制渐变
View layout = findViewById(R.id.mainLayout);
GradientDrawable gradientDrawable = new GradientDrawable(
GradientDrawable.Orientation.TOP_BOTTOM,
new int[] {0xff45c0cc,0xff0054a6}
);
gradientDrawable.setCornerRadius(0f);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
layout.setBackground(gradientDrawable);
}
我从给定的css中了解到的是#f99185-52%表示52%的透明度,在我给定的代码示例int []中有一个十六进制代码,您可以使用6位GRBcode并附加52%的不透明度等价于here并附加给定的RGBcode
例如 #f99185 52%将变为#f9918585,因为52%的十六进制为85
答案 1 :(得分:0)
我建议您查看以下相关问题:Using a gradientDrawable with more than three colors set
使用LinearGradient对象,您可以使用多种颜色和百分比刻度来定义渐变。
例如(从我链接的问题中借来的):
LinearGradient linearGradient = new LinearGradient(0, 0, width, height,
new int[] {
0xFF1e5799,
0xFF207cca,
0xFF2989d8,
0xFF207cca }, //substitute the correct colors for these
new float[] {
0, 0.40f, 0.60f, 1 },
Shader.TileMode.REPEAT);
我链接的问题和official documentation包含有关如何使用它的更多详细信息。