2012-02-18 19 views
6

मेरे पास एक सादा ImageView ऑब्जेक्ट colorSquare है।एक छवि दृश्य का पृष्ठभूमि रंग

कॉल करके ऑब्जेक्ट का रंग सेट करना सीधा है।

colorSquare.setBackgroundColor(color); 

लेकिन मैं रिवर्स कैसे करूं, यानी ImageView पृष्ठभूमि का रंग पुनर्प्राप्त करें?

उत्तर

14

आप क्या कर सकते हैं

ImageView से ColorDrawable प्राप्त करें।

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

अब

drawable.getColor()

यू रंग दे देंगे।

यह केवल तभी कार्य करेगा यू रंग निर्धारित किया है या फिर यू ClassCastException

+0

हाँ, यह धन्यवाद काम करता है। – CjS

+0

यह केवल एपीआई स्तर 11 या उससे ऊपर – Maragues

+0

@Maragues पर काम करेगा हाँ यह केवल API स्तर> = 11 –

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; 

} 

मिल जाएगा कहाँ एक्स, वाई imageView स्पर्श घटना के event.getX(), event.getX() कर रहे हैं

+1

WTH के लिए काम करेगा, इस प्रतिक्रिया को w/प्रश्न करना है? – swooby

संबंधित मुद्दे