Özel bir View
için bir dikey LinearGradient
uyguladı. Cihazların çoğunda iyi çalışıyor, ancak Android 4.1.2'yi çalıştıran bir Galaxy Note 2'de degradenin renkleri (renk enterpolasyonu) arasında sorunsuz geçişi olmadığını, ancak her bir rengin bir noktada başladığını fark ettik.Android LinearGradient renk enterpolator çalışmıyor Android 4.1.2
Birisinin yöne işaret edebilir bu
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);
gibi gradyan inşa ediyorum?
Teşekkürler!
"mColors" ve "yüzdeler" nedir? Log.d onları denedin mi? – pskink
'mColors', degrade adımları için renk kodlarını içeren bir int [[] dizisidir. Gerçek renk değişimi adımları için [0..1] 'deki yüzdeler ve yüzdeler. Ve evet, ben onları dışarı kaydettim ve sadece – Arkde
da "height'! = 0?" Gibi görünüyorlar, sadece yeni LinearGradient (0, 0, 100, 100, Color.GREEN, Color.RED, Shader) test etmek için deneyin .TileMode.CLAMP); 'paint.setShader' ve' canvas.drawPaint' – pskink