使用xml中的渐变为视图创建框架

时间:2014-11-20 10:55:10

标签: android xml view graphics gradient

我想知道如何使用xml为背景矩形创建一种渐变框架。

使用xml定义为1面创建背景渐变非常简单:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  <gradient 
  android:type="linear"
  android:centerX="8%" 
  android:startColor="#FF004D4D" 
  android:centerColor="#FF000000" 
  android:endColor="#FF000000" 
  android:angle="180"/>
</shape>

导致这样的背景:

Gradient on the right side

但是如何为所有方面创建类似的渐变?所以它看起来像这样(道歉30秒的photoshopping):

Gradient on all sides

我尝试创建一个layer-list,正如其他有关多个渐变的问题所建议的那样,但这似乎没有用,它只是采用了最后一项&#34;并使用了那些设置..

我在View的onDraw方法中使用setBackgroundResource(R.drawable.gradient_bg);,如果它有任何重要性。谢谢你的任何建议!

1 个答案:

答案 0 :(得分:0)

答案确实是layered-list。错误只是没有降低endColor上的alpha值。所以这可以按预期工作:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item> 
    <shape android:shape="rectangle">
      <gradient
            android:type="linear"
            android:centerX="8%"
            android:startColor="#FFFF0000"
            android:centerColor="#00FF0000" 
            android:endColor="#00000000"
            android:angle="0"/>
    </shape>
  </item>
  <item> 
    <shape android:shape="rectangle">
      <gradient
            android:type="linear"
            android:centerX="8%"
            android:startColor="#FFFF0000"
            android:centerColor="#00FF0000" 
            android:endColor="#00000000"
            android:angle="90"/>
    </shape>
  </item>
</layer-list>