2014-07-22 3 views
0

일부 색상으로 배열을 만든 다음 내보기에서 클릭하면 해당 색상이 임의의 순서로 변경됩니다. 이것은 내가 지금까지임의의 색상이 작동하지 않고 하나만 표시됩니다.

List<String> colors = new ArrayList<>(); 
    colors.add("#e84e40"); //red 
    colors.add("#ec407a"); //pink 
    colors.add("#ab47bc"); //purple 
    colors.add("#7e57c2"); //deep purple 
    colors.add("#5c6bc0"); //indigo 
    colors.add("#738ffe"); //blue 
    colors.add("#29b6f6"); //light blue 
    colors.add("#26c6da"); //cyano 
    colors.add("#26a69a"); //teal 
    colors.add("#2baf2b"); //green 
    colors.add("#9ccc65"); //light green 
    colors.add("#d4e157"); //lime 
    colors.add("#ffee58"); //yellow 
    colors.add("#ffca28"); //amber 


Random n= new Random(0); 
color = n.nextInt(colors.size()); 
db.getBackground().setColorFilter(Color.parseColor(colors.get(color)), Mode.MULTIPLY); 

하지만 일을 수행하는 대신 항상에만 녹색을 보여줍니다 임의의 모든 색상을 표시 한 것입니다. 어떤 생각?

편집 : 만약 내가 쓸 경우 Random n= new Random(); 2 색을 표시합니다. 색인에 문제가 있습니까? LightingColorFilter를 사용

+1

당신이 진정으로 임의의 색상이 다음 새로운 색상을 새로운 색상 확인하려는 경우 (random.nextint (255), random.nextint (255), random.nextint를 (255)) ; – Rush2sk8

+0

하지만 그 색깔을 보여주고 싶습니다! 그 이유에 대한 배열을 만들었습니다 .. –

+0

내가 여기에 문제가 있다고 생각 :'Mode.MULTIPLY' 내가 모드를 변경하면 색상 .. 항상 2 어쨌든 –

답변

1

시도,

Random n= new Random(0); 
color = n.nextInt(colors.size()); 
db.getBackground().setColorFilter(new LightingColorFilter(color, 0)); 
+0

항상 두 가지 색상이 다르지만 항상 두 가지입니다. –

+0

나는이 문제가 여기 있다고 생각한다.'Mode.MULTIPLY' 내가 모드를 바꾸면 색이 바뀐다. 항상 2 어쨌든 –

+0

그래, 그게 내가 의심하는 부분이다. 이것 좀 봐 - http://stackoverflow.com/a/18954101/713778 – ranjk89

관련 문제