2016-05-13 7 views
2

Я использую метод для создания массива цветов, однако SKPolyline белый, а не желаемый розоватый цвет. Вот код:SKPolyline setColor не дает правильный цвет

public static float[] getPinkColorArray() { 
     float[] colorArray = new float[4]; 
     colorArray[0] = 249f; 
     colorArray[1] = 1f; 
     colorArray[2] = 148f; 
     colorArray[3] = 255f; 

     return colorArray; 
    } 

Затем я использую polyline.setColor(floatArray); и это создает белую ломаную линию. Если я использую значения 255, 0, 0, 255, я получаю красную строку (что верно).

tl; dr: Как создать розовую поплавковую матрицу для SKPolyline со значениями красного цвета: 249, зеленый: 1, синий: 148, нет альфа.

ответ

4
SKPolyline polyline = new SKPolyline(); 
    // set the nodes on the polyline 
    nodes = new ArrayList<SKCoordinate>(); 
    nodes.add(new SKCoordinate(-122.4342, 37.7898)); 
    nodes.add(new SKCoordinate(-122.4141, 37.7898)); 
    nodes.add(new SKCoordinate(-122.4342, 37.7753)); 
    polyline.setNodes(nodes); 
    // set polyline color 
    polyline.setColor(new float[]{0.976470588f, 0.003921569f, 0.580392157f, 1f}); 

    polyline.setLineSize(10); 
    polyline.setIdentifier(12); 
    mapView.addPolyline(polyline); 

Я использовал функцию 1f = 255, то 0.976470588f = 249 enter image description here

+0

большое спасибо. есть ли у вас пример документа, который показывает правильное использование метода setColor (float [])? Я не мог найти его – HaydenKai

+1

У меня нет документации: массив должен содержать 4 значения: R, G, B и Alpha. Все значения идут от 0 (0) до 1 (255) - поэтому, если вы хотите преобразовать значения из интервала 0 - 255 в 0-1 интервал, используйте формулу: myFloatValue = my0_255Value * 1/255. Параметр alpha идет от 0 (полностью прозрачный) до 1 (полностью непрозрачный) – Ando

 Смежные вопросы

  • Нет связанных вопросов^_^