Я внедрил вертикальный LinearGradient
для пользовательского View
. Он работает хорошо на большинстве устройств, но мы заметили, что в Galaxy Note 2, работающем под управлением Android 4.1.2, градиент не плавно переходит между цветами (цветовая интерполяция), но каждый цвет начинается только в какой-то момент.Android LinearGradient цветной интерполятор не работает на Android 4.1.2
Я построения градиента, как этот
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);
Может кто-нибудь мне точку в направлении?
Спасибо!
Что такое 'mColors' &' percentages'? вы пытались «Log.d» их выпустить? – pskink
'mColors' - это массив int [[], содержащий цветовые коды для шагов градиента. Значения «проценты» и «плавающие» значения в [0..1] для реальных шагов изменения цвета. И да, я выписал их, и они выглядят просто отлично – Arkde
также является 'height'! = 0 ?, попробуйте просто для тестирования' new LinearGradient (0, 0, 100, 100, Color.GREEN, Color.RED, Shader .TileMode.CLAMP); 'затем следуют' paint.setShader' и 'canvas.drawPaint' – pskink