2014-02-19 5 views
5

나는 아래에 표시 할 코드 스 니펫이 있으며보기의 (v) 배경을 변경하려고합니다. TextView (끌기)에서 색상 코드를 가져오고이 코드를 사용하여 View (v)의 배경을 변경합니다. 하지만 위와 같이 오류가 발생합니다. 어떻게 해결할 수 있습니까? 문제가 어디에 있습니까? 감사. 당신은 또 다른 하나의보기의 배경을 지정하고 만 색상을 사용하면됩니다 얻으려면뿐만 아니라 색상이GradientDrawable을 ColorDrawable 문제로 캐스팅 할 수 없으면 어떻게 해결할 수 있습니까?

Drawable drawable = dragged.getBackground(); 
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { 
    v.setBackgroundDrawable(drawable); 
}else{ 
    v.setBackground(drawable); 
} 

그러나 다음과 같은 코드를 사용할 수 있습니다 원하는 경우

ColorDrawable cd = (ColorDrawable)dragged.getBackground(); 
    int colorCode = cd.getColor(); 
    v.setBackgroundColor(colorCode); 
+0

일반적으로 귀하의 아이디어는 무엇이며 원하는 것을 설명해주십시오. textview의 배경을 다른보기로 설정 하시겠습니까? – x90

+0

'TextView'의 배경색을 변경하고 싶습니다. 다른 'TextView' (끌기)에서이 색상을 가져옵니다. 또한 내 코드에서 색상 코드를 저장하는 배열을 저장하는 데이 색상의 코드가 필요합니다. –

+0

은 그라디언트를 textview의 배경으로 사용하는 것처럼 보입니다. 안 그래? – x90

답변

0

볼 수있는 드로어 블의 유형을 미리 확인해야합니다. 그런 다음 instanceof를 사용하여 해당 드로어 블의 배경색을 얻는 방법을 처리합니다.