2015-10-07 143 views
1

我做了這個:Android:如何使用多色漸變繪製drawable?

ShapeDrawable.ShaderFactory shaderFactory = new ShapeDrawable.ShaderFactory() { 
     @Override 
     public Shader resize(int width, int height) { 
      LinearGradient linearGradient = new LinearGradient(0, 0, width, height, 
        new int[]{ 
          0xF44336, 
          0xFFB74D, 
          0xFFE082, 
          0xAED581, 
          0x4CAF50, 
          0xAED581, 
          0xFFE082, 
          0xFFB74D, 
          0xF44336}, 
        new float[]{ 
          0, 0.125f, 0.25f, 0.375f, 0.5f, 0.625f, 0.75f, 0.875f, 1.0f}, 
        Shader.TileMode.REPEAT); 
      return linearGradient; 
     } 
    }; 
    PaintDrawable paint = new PaintDrawable(); 
    paint.setShape(new RectShape()); 
    paint.setShaderFactory(shaderFactory); 

,但我看不到任何東西,當我將它作爲一個視圖背景。

+0

使用'ShapeDrawable'不'PaintDrawable' – pskink

+0

它仍然是透明 – user3290180

+0

什麼是你對'paint'福斯產品在做什麼? – pskink

回答

3

試試這個繪製設置你的觀察背景

GradientDrawable rainbow = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT, 
      new int[] {Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED}); 
+0

我有超過3種顏色 – user3290180

+0

更新的multicolors –

+1

感謝接受它是正確的,我還用它在進度條indeterminateDrawable ,,一些更多的修改將使它的彩虹色移動爲加載程序,如Gmail標題欄下面的加載欄,,, –