2011-06-03 17 views
4

嗨 我想创建一个形状绘制并用渐变色与白色的行程 在此处填写是我的代码如何添加行程ShapeDrawable

ShapeDrawable greenShape = new ShapeDrawable(new RectShape()); 
    Shader shader1 = new LinearGradient(0, 0, 0, 50, new int[] { 
      0xFFBAF706, 0xFF4CD52F }, null, Shader.TileMode.CLAMP); 
    greenShape.getPaint().setShader(shader1); 
    greenShape.getPaint().setStrokeWidth(3); 
    greenShape.getPaint().setColor(Color.WHITE); 
    greenShape.getPaint().setStyle(Paint.Style.FILL_AND_STROKE);` 

问题是矩形出现带有渐变填充,但无卒中

+0

我不知道如何在代码中做到这一点。这是你可以在XML中做什么? – CaseyB 2011-06-03 20:10:33

+0

用xml很简单,但在我的情况下,我想用java代码来做 – JustMe 2011-06-03 20:13:06

回答

10

ShapeDrawable不允许您轻松地在它周围画一笔。 如果你真的想要那么this将是一个很好的地方看看。

OR

你可以使用一个GradientDrawable

GradientDrawable gd = new GradientDrawable(); 
gd.setColor(Color.RED); 
gd.setCornerRadius(10); 
gd.setStroke(2, Color.WHITE); 

(PS:这是作为在同一页面评论)

+0

如何使它成为OvalShape?意思是一个实心的圆,另一种颜色的笔画? – 2017-08-10 07:51:43

0
<stroke 
     android:width="2dp" 
     android:color="#808080" /> 

尝试它,它肯定会工作

0

将样式更改为greenShape.getPaint()。setStyle(Paint.Style.STROKE) 和

greenShape.setShaderFactory(new ShapeDrawable.ShaderFactory() { 
     @Override 
     public Shader resize(int width, int height) { 
      return new LinearGradient(0, 0, 0, 0, Color.WHITE, Color.WHITE, Shader.TileMode.REPEAT);