
ShapeDrawable shapeDrawable = new ShapeDrawable(new RectShape()); shapeDrawable.getPaint().setcolor(color.parsecolor("#5a2705")); shapeDrawable.getPaint().setStyle(Style.stroke); shapeDrawable.getPaint().setAntiAlias(true); shapeDrawable.getPaint().setstrokeWIDth(2); shapeDrawable.getPaint().setPathEffect(new CornerPathEffect(10)); 我将此作为背景应用于我的linearLayout,但边缘不平滑.我怎样才能解决这个问题?
以下是它的外观截图.
解决方法 使用以编程方式创建的形状可绘制为视图背景会导致笔划宽度的外半部分被裁剪掉(原因我不知道).仔细观察你的图像,你会发现你的笔划只有1像素宽,即使你要求2.这就是为什么角落看起来很难看.如果您尝试更大的笔划和半径(例如分别为10和40),则此效果将更加明显.要么使用XML drawable,这似乎没有这个问题,比如Harshit Jain的回答,或者如果你必须(或者更喜欢)使用程序化解决方案,请执行以下 *** 作.
解决方案:使用图层列表按要剪裁的量(笔画宽度的一半)插入矩形,如下所示:
float strokeWIDth = 2;ShapeDrawable shapeDrawable = new ShapeDrawable(new RectShape());shapeDrawable.getPaint().setcolor(color.parsecolor("#5a2705"));shapeDrawable.getPaint().setStyle(Style.stroke);shapeDrawable.getPaint().setAntiAlias(true);shapeDrawable.getPaint().setstrokeWIDth(strokeWIDth);shapeDrawable.getPaint().setPathEffect(new CornerPathEffect(10));Drawable[] layers = {shapeDrawable};LayerDrawable layerDrawable = new LayerDrawable(layers);int halfstrokeWIDth = (int)(strokeWIDth/2);layerDrawable.setLayerInset(0,halfstrokeWIDth,halfstrokeWIDth); 然后使用layerDrawable作为背景.以下是上述代码结果的屏幕截图:
总结以上是内存溢出为你收集整理的android – 圆角视图不流畅全部内容,希望文章能够帮你解决android – 圆角视图不流畅所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)