Android:点击生成随机颜色?

我有一个ImageView ,我在程序中创builddrawable并将其呈现给用户。 我的目标是点击所述ImageView并更改绘图的颜色。

我将如何去随机换色位? 我目前正在修改Random()Color.argb()和其他一些事情,但我似乎无法得到它的工作!

 Random rnd = new Random(); paint.setARGB(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); 

要么

 Random rnd = new Random(); int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); view.setBackgroundColor(color); 

虽然在你的情况下,似乎你想创build一个新的绘图并将其分配给您的视图。 你的情况实际上是可绘制的? 这是一个图像,形状,填充…

获得随机的颜色值,你可以使用这个方法:

 public int getRandomColor(){ Random rnd = new Random(); return Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); } 

然后申请您的意见:

 myView.setBackgroundColor(getRandomColor()); 

在这里输入图像说明

我遇到这个,这是我的代码,可能有一些帮助

  /** * view-source:http://www.kareno.org/js/colors/ 参考*Get Random background color and the text color for the background * @return 0--》background * 1--》text color */ public static int[] getRandomColor() { Random random = new Random(); int RGB = 0xff + 1; int[] colors = new int[2]; int a = 256; int r1 = (int) Math.floor(Math.random() * RGB); int r2 = (int) Math.floor(Math.random() * RGB); int r3 = (int) Math.floor(Math.random() * RGB); colors[0] = Color.rgb(r1, r2, r3); if((r1 + r2 + r3) > 450) { colors[1] = Color.parseColor("#222222"); }else{ colors[1] = Color.parseColor("#ffffff"); } return colors; } 

这是我在应用程序中使用的代码,它可以帮助你。

它会产生随机的颜色

  public boolean onTouch(View v, MotionEvent event) { int x = (int)event.getX(); int y = (int) event.getY(); float w = v.getWidth(); if(x < (w * (1.0/3) )){ layout.setBackgroundColor(Color.rgb(255,x,y)); }else if(x < (w * (2.0 / 3))){ layout.setBackgroundColor(Color.rgb(x,255,y)); }else{ layout.setBackgroundColor(Color.rgb(x,y,255)); } return true; } 
  public static int randomColor(){ float[] TEMP_HSL = new float[]{0, 0, 0}; float[] hsl = TEMP_HSL; hsl[0] = (float) (Math.random() * 360); hsl[1] = (float) (40 + (Math.random() * 60)); hsl[2] = (float) (40 + (Math.random() * 60)); return ColorUtils.HSLToColor(hsl); } 
 bb.setBackgroundColor(Color.rgb( getRandomInteger(0,255), getRandomInteger(0, 255), getRandomInteger(0, 255) ));