Android可绘制画布-更改边框设计和颜色

Android可绘制画布-更改边框设计和颜色,android,drawing,android-canvas,Android,Drawing,Android Canvas,我对Android中的画布和绘图是新手,我刚刚使用了我设法调整的代码,但是,我发现很难更改边框样式和边框颜色 我希望边界只是一个简单的黑色方形边界,没有花哨的波浪和彩色光谱 这是onCreate函数中的代码,我已经设法最小化了边界的波纹,但是仍然有一些小的凸起和转弯 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestW

我对Android中的画布和绘图是新手,我刚刚使用了我设法调整的代码,但是,我发现很难更改边框样式和边框颜色

我希望边界只是一个简单的黑色方形边界,没有花哨的波浪和彩色光谱

这是onCreate函数中的代码,我已经设法最小化了边界的波纹,但是仍然有一些小的凸起和转弯

 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     requestWindowFeature(Window.FEATURE_NO_TITLE);
     setContentView(R.layout.activity_main);

     float[] outerR = new float[] { 12, 12, 12, 12, 0, 0, 0, 0 };

     RectF inset = new RectF(6, 6, 6, 6);
     float[] innerR = new float[] { 12, 12, 0, 0, 12, 12, 0, 0 };

     mDrawables = new ShapeDrawable[2];

     mDrawables[0] = new ShapeDrawable(new RoundRectShape(outerR, inset, null));
     //mDrawables[0].getPaint().setShader(makeSweep());

     mDrawables[1] = new ShapeDrawable(new RoundRectShape(outerR, inset, innerR));
     //mDrawables[1].getPaint().setShader(makeLinear());

     PathEffect mPathEffect1 = new DiscretePathEffect(1, 1);
     PathEffect mPathEffect2 = new CornerPathEffect(1);

     mDrawables[0].getPaint().setPathEffect(new ComposePathEffect(mPathEffect2, mPathEffect1));
     RelativeLayout layout = (RelativeLayout) findViewById(R.id.myDrawing);
     layout.setBackgroundDrawable(mDrawables[0]);
     activity = this; 


     //mView = new DrawingView(this);
     mView = new SignatureView(activity, null);

     layout.addView(mView, new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));

     init();

     mEmboss = new EmbossMaskFilter(new float[] { 1, 1, 1 }, 0.4f, 6, 3.5f);
     mBlur = new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL);
 }
对不起,我知道这可能是一个简单的任务,但我完全被难住了

编辑-好的,我设法使它变成纯黑色,我刚刚删除了mDrawables[0/1].getPaint()行,它变成了黑色,我现在唯一的问题是使它完全笔直。

解决了它

对于边框的颜色,请注释掉以下行:
mDrawables[0].getPaint().setShader(makeSweep())
mDrawables[1].getPaint().setShader(makeLinear())

在那之后,问题是离散效应。将该代码行更改为:
PathEffect MPATFECT1=新的离散PathEffect(1,0)


显然,DiscretePathEffect的两个参数决定了该行的“扭曲程度”。

不需要道歉,您已经研究、调整了代码,向我们展示了您所做的事情,并且非常具体地说明了您希望实现的结果。