答案 0 :(得分:21)
根据developers.android 你可以......这就是他们使用的代码
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="45"
android:endColor="#87CEEB"
android:centerColor="#768087"
android:startColor="#000"
android:type="linear" />
</shape>
还here's教程
希望这会有所帮助
答案 1 :(得分:19)
您无法在xml文件中实现+3渐变颜色。但您可以使用GradientDrawable类将其添加到java / kotlin代码中。这是Java版本,用颜色ID替换颜色数组。
GradientDrawable gradientDrawable = new GradientDrawable(
Orientation.TOP_BOTTOM,
new int[]{ContextCompat.getColor(this, R.color.color1),
ContextCompat.getColor(this, R.color.color2),
ContextCompat.getColor(this, R.color.color3),
ContextCompat.getColor(this, R.color.color4)});
findViewById(R.id.background).setBackground(gradientDrawable);
答案 2 :(得分:2)
在drawable中创建一个新的xml文件并复制以下代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:startColor="#9A0C0C"
android:centerColor="#CE9908"
android:endColor="#3091FF"
android:angle="270"/>
</shape>
答案 3 :(得分:2)
这可以通过使用矢量图形来实现 我已经在Adobe illustrator中制作了背景渐变,然后将该矢量资产作为xml导入到android studio中,并且与矢量的可伸缩性完美配合
这是此vector / xml drawable的代码
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="987.3dp"
android:height="870.3dp"
android:viewportWidth="987.3"
android:viewportHeight="870.3">
<path android:pathData="M0,870l0,-870l987,0l0,870z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="493.5"
android:endY="870"
android:startX="493.5"
android:startY="2.6645353E-14"
android:type="linear">
<item
android:color="#FF0000FF"
android:offset="0" />
<item
android:color="#FF6AFCFF"
android:offset="0.1974" />
<item
android:color="#FFE900D0"
android:offset="0.3786" />
<item
android:color="#FFFF7D15"
android:offset="0.5906" />
<item
android:color="#FFE6FF55"
android:offset="0.7513" />
<item
android:color="#FFED1E79"
android:offset="1" />
</gradient>
</aapt:attr>
</path>
答案 4 :(得分:2)
<?xml version="1.0" encoding="utf-8"?>
<gradient
android:endColor="#243638"
android:centerColor="#3c6869"
android:startColor="#7d695c"
android:type="radial"
android:centerX="100%"
android:centerY="100%"
android:gradientRadius="900dp"/>
答案 5 :(得分:1)
在drawable文件夹下新建xml文件并按照代码
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient
android:startColor="#1fa2ff"
android:centerColor="#12d8fa"
android:endColor="#a6ffcb"
android:angle="45"/>
</shape>
</item>
在 main.xml 中,将背景设置为在 drawable 中创建的新 xml 文件
答案 6 :(得分:0)
您可以使用径向渐变的图层列表来执行此操作,然后为不同的项目设置不同的不透明度
答案 7 :(得分:0)
在 Kotlin 中你可以直接使用这个扩展函数,代码由@Pelanes 获取
fun ImageView.setGradientDrawable(colorArray: IntArray) {
val gradientDrawable = GradientDrawable(
GradientDrawable.Orientation.TOP_BOTTOM, colorArray
)
this.background = gradientDrawable}