[英]Android: ShapeDrawable on ImageButton: pixelated
我正在尝试在ImageButton内显示一个图标。 该图标作为路径给出。 现在,问题在于路径显示为像素化。
有什么想法可以为ImageButton或ShapeDrawable启用抗锯齿功能吗? 还是我做错了什么?
Path path = new Path();
path.moveTo(0f, 192f); path.lineTo(115, 365); path.cubicTo(123, 377, 135, 384, 149, 384); path.lineTo(469, 384); path.cubicTo(493, 384, 512, 365, 512, 341); path.lineTo(512, 43); path.cubicTo(512, 19, 493, 0, 469, 0); path.lineTo(149, 0); path.cubicTo(135, 0, 123, 7, 115, 19); path.close(); path.moveTo(192, 268); path.lineTo(222, 299); path.lineTo(299, 222); path.lineTo(375, 299); path.lineTo(405, 268); path.lineTo(329, 192); path.lineTo(405, 116); path.lineTo(375, 85); path.lineTo(299, 162); path.lineTo(222, 85); path.lineTo(192, 116); path.lineTo(268, 192); path.close();
path.setFillType(Path.FillType.EVEN_ODD);
PathShape shape = new PathShape(path, 512f, 384f);
ShapeDrawable drawable = new ShapeDrawable(shape);
drawable.setIntrinsicWidth(512);
drawable.setIntrinsicHeight(384);
ImageButton button = new ImageButton(context);
button.setScaleType(ImageView.ScaleType.FIT_CENTER);
button.setImageDrawable(drawable);
button.setBackgroundColor(0xFFFAFADA);
尝试以下
Paint psPaint = drawable.getPaint();
psPaint.setAntiAlias(true);
psPaint.setStrokeJoin(Paint.Join.ROUND);
psPaint.setStrokeCap(Paint.Cap.ROUND);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.