Ich muss einen Rahmen mit abgerundeten Ecken programmatisch durch Erweitern ShapeDrawable erstellen. Ich brauche einen schwarzen Rand mit abgerundeten Ecken, wobei die Pixel außen weiß und die inneren Pixel transparent sind. Der Code, den ich im Moment habe, hat mehrere Probleme, von denen es ist, dass es keine glatte Ecke schafft, die die gleiche Dicke wie die Grenze hat und dass die äußeren Pixel der Grenze transparent und nicht weiß sind.Wie programmiere ich einen runden Rand mit ShapeDrawable in Android?
Hier ist ein Bild von den Ecken ich zur Zeit bin immer
Hier ist der Code, wo ich Color.TRANSPARENT für ‚füllen‘ im Konstruktor bin vorbei:
public class CustomShape extends ShapeDrawable {
private final Paint fillpaint, strokepaint;
public CustomShape(int fill, int strokeWidth,int radius) {
super(new RoundRectShape(new float[] { radius, radius, radius, radius, radius, radius, radius, radius }, null, null));
fillpaint = new Paint(this.getPaint());
fillpaint.setColor(fill);
strokepaint = new Paint(fillpaint);
strokepaint.setStyle(Paint.Style.STROKE);
strokepaint.setStrokeWidth(strokeWidth);
strokepaint.setColor(Color.BLACK);
}
@Override
protected void onDraw(Shape shape, Canvas canvas, Paint paint) {
shape.draw(canvas, fillpaint);
shape.draw(canvas, strokepaint);
}
}
versucht Drawable können zu verlängern (und eine benutzerdefinierte dtaw) anstelle von ShapeDrawable? – pskink