Versuchen, zeichnen Sie eine Schaltfläche: wie Sie einen Schlaganfall Farbe und wie Sie "ausrichten" Sie einen Farbverlauf auf den Boden, ohne zu wissen, die Höhe?
Ich bin erstellen einer Schaltfläche programmatisch. Es ist abgerundet und hat einen Farbverlauf im hintergrund, und funktioniert gut und sieht nett aus, aber ich konnte nicht zwei Dinge, die ich wollte:
- Legen Sie eine 1-pixel-Kontur mit einer bestimmten Farbe. Ich habe versucht, getPaint().setStroke(), aber konnte nicht herausfinden, wie Sie zum festlegen der Konturfarbe. Wie sollte ich es tun?
- Richten Sie die Steigung an der Unterseite der Taste, egal welche Höhe es hat. Ist das möglich?
Als Referenz, dies ist der code, den ich verwende:
Button btn = new Button(context);
btn.setPadding(7, 3, 7, 5);
btn.setTextColor(text_color);
//Create a gradient for the button. Height is hardcoded to 30 (I don't know the height beforehand).
//I wish I could set the gradient aligned to the bottom of the button.
final Shader shader = new LinearGradient(0, 0, 0, 30,
new int[] { color_1, color_2 },
null, Shader.TileMode.MIRROR);
float[] roundedCorner = new float[] { 5, 5, 5, 5, 5, 5, 5, 5 }
ShapeDrawable normal = new ShapeDrawable(new RoundRectShape(roundedCorner, null, null));
normal.getPaint().setShader(shader);
normal.setPadding(7, 3, 7, 5);
//Create a state list (I suppressed settings for pressed).
StateListDrawable state_list = new StateListDrawable();
state_list.addState(new int[] { }, normal);
btn.setBackgroundDrawable(state_list);
InformationsquelleAutor moraes | 2010-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Bezug auf Ihre erste Frage, ich kämpfte mit diesem als gut, und es sieht nicht wie es irgendwelche geeignete Methoden innerhalb von Drawables selbst (ich war mit
ShapeDrawable
) oder die Farbe Klasse. Allerdings war ich in der Lage zu verlängernShapeDrawable
und überschreiben Sie die draw-Methode wie folgt, um das gleiche Ergebnis:Der link oben ist kaputt. Dies ist der aktualisierte link: betaful.com/post/82668809883/programmatic-shapes-in-android
ich hatte versucht Ihr das so gut wie betauful.com Antwort erstellen Grenze mit Eckenradius Programm... und es funktioniert ganz gut, aber es schafft auch ein Rand außerhalb der Ansicht. Die Ansicht hab ich auf den link drive.google.com/file/d/0BwkVxZWl7VcETlIySV82NC1sV2s/..., so bitte helfen Sie mir bei entfernen der Vergrauung Rand..
Können Sie aktualisieren Sie bitte diese Antwort? Der Schlaganfall ist immer noch abgeschnitten...
InformationsquelleAutor Stev_k
Können Sie eine GradientDrawable mit setStroke(3, Farbe.WEIß) - Methode. Um abgerundete Ecken verwenden:
InformationsquelleAutor garmax1
Versuchen, diese....in drawable eine neue xml-Datei und legen Sie es, wo Sie es wollen..!
InformationsquelleAutor jigar