2012-02-18 46 views
6

的背景顏色我有一個普通的ImageView對象colorSquare獲得一個ImageView的

它是簡單的通過調用設置對象的顏色。

colorSquare.setBackgroundColor(color); 

但我怎麼做反向,即檢索ImageView的背景顏色?

回答

14

你可以做什麼是

從ImageView獲取ColorDrawable。

ColorDrawable drawable = (ColorDrawable) colorSquare.getBackground(); 

現在

drawable.getColor()

將要給你顏色。

如果u已設置的顏色這隻會工作,否則U將得到ClassCastException異常

+0

是的,這很有用。 – CjS 2012-02-18 11:13:36

+0

這隻能在API層面上工作11或以上 – Maragues 2012-03-27 11:07:56

+0

@Maragues是的,它只會工作的API等級> = 11 – 2012-03-27 11:57:55

0
private int colorfindcolor(View v, int x, int y) { 


    int offset = 1; // 3x3 Matrix 
    int pixelsNumber = 0; 

    int xImage = 0; 
    int yImage = 0; 


    Bitmap imageBitmap = BitmapFactory.decodeResource(context.getResources(), 
      R.drawable.palette_color); 
    xImage = (int) (x * ((double) imageBitmap.getWidth()/(double) paletteImg 
      .getWidth())); 
    yImage = (int) (y * ((double) imageBitmap.getHeight()/(double) paletteImg 
      .getHeight())); 

    for (int i = xImage - offset; i <= xImage + offset; i++) { 
     for (int j = yImage - offset; j <= yImage + offset; j++) { 
      try { 

       color = imageBitmap.getPixel(i, j); 

       pixelsNumber += 1; 
      } catch (Exception e) { 
       // Log.w(TAG, "Error picking color!"); 
      } 
     } 
    } 

    return color; 

} 

其中x,y是ImageView的觸摸事件的event.getX(),event.getX()

+1

WTH這是否響應要做的瓦特/的問題? – swooby 2015-12-23 21:10:41