Ich habe eine vertikale LinearGradient
für eine benutzerdefinierte View
implementiert. Es funktioniert gut auf den meisten Geräten, aber wir haben festgestellt, dass bei einem Galaxy Note 2 mit Android 4.1.2 der Farbverlauf nicht gleichmäßig zwischen Farben wechselt (Farbinterpolation), sondern jede Farbe an einem bestimmten Punkt beginnt.Android LinearGradient Farbinterpolator funktioniert nicht auf Android 4.1.2
Ich Aufbau des Gradienten wie dieses
ViewCompat.setLayerPaint(myView, null);
Paint paint = myView.getPaintRender();
paint.setDither(true);
int height = myView.getHeight();
// create a gradient background paint which will be later on clipped
mColors = generateColorsRage(myDTOProvidingData);
float[] percentages = generateColorPercentages();
LinearGradient linearGradient = new LinearGradient(0, 0, 0, height, mColors, percentages, Shader.TileMode.CLAMP);
paint.setShader(linearGradient);
auf eine Richtung Kann jemand mir zeigen?
Danke!
Was sind 'mColors' &' Prozentsätze'? hast du versucht, sie zu "log.d" auszumachen? – pskink
'mColors' ist ein Array von int [[], das die Farbcodes für Gradientenschritte enthält. Die Prozentwerte und Gleitkommawerte in [0..1] für die tatsächlichen Farbwechselschritte. Und ja, ich habe sie ausgeloggt und sie sehen gut aus – Arkde
ist auch 'height'! = 0 ?, versuche nur' new LinearGradient (0, 0, 100, 100, Color.GREEN, Color.RED, Shader .TileMode.CLAMP); 'gefolgt von' paint.setShader' und 'canvas.drawPaint' – pskink