2014-06-17 3 views
-1

내 상대 레이아웃이 버튼이 있습니다드로어 블에 연결된 내 버튼의 색상을 변경하려면 어떻게해야합니까?

<Button 
     android:id="@+id/gpsButton" 
     android:layout_width="50sp" 
     android:layout_height="50sp" 
     android:layout_alignParentRight="true" 
     android:layout_alignTop="@+id/tableLayout1" 
     android:background="@drawable/round_button" 
     android:gravity="center_vertical|center_horizontal" 
     android:text="GPS" 
     android:textColor="#ffffff" /> 

그것은이 그늘에 연결되어 있습니다 :

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 
    <solid android:color="#FF0000"/> 
    <stroke android:width="2sp" android:color="#fff" /> 
</shape> 

내 질문은 내가 내 활동에서 버튼의 색상을 변경하는 방법입니까?

나는 그것을 시도했지만 응용 프로그램 내 코드의 조각입니다 여기 -.- 추락 :

RelativeLayout relLayout = (RelativeLayout) findViewById(R.id.reli); 
         GradientDrawable bgShape = (GradientDrawable) relLayout.getBackground(); 
         bgShape.setColor(Color.parseColor("#FFFF00")); 

은 내가 잘못합니까? 나는보기로 이것을하는 방법을 이해하지 못한다.

은 사전에 감사합니다 :)

+0

** 1 ** -이'GradientDrawable bgShape'는 나에게 이해가 가지 않습니다. 이 'ShapeDrawable bgShape'는 더 감각적입니다. ** 2 ** - 붉은 색으로 시작합니다 (''). 흰색으로 시작한 경우 (''), 드로어 블의 색상을 변경하기가 쉽습니다. 나는 그것을 여기에 보여준다 : http://stackoverflow.com/a/24166204/2649012 –

+0

당신의 stacktrace를 게시해라! – goonerDroid

+0

@DerGolem 나는 빨간 색으로 만 시작할 수 있습니다 ... –

답변

0

당신은 쉽게 프로그래밍 방식으로 컬러 필터를 추가하여 Button의 배경 색상을 변경할 수 있습니다. 이를 위해 XML 파일에 흰색 배경을 설정하십시오. 그런 다음, 버튼 빨간색을 만들기 위해, 당신은이 작업을 수행 할 수 있습니다

gpsButton.getBackground().setColorFilter(Color.RED, Mode.MULTIPLY); 

redwhitered로 될 것이다 곱한 것입니다. 물론 Color.RED을 원하는 색상으로 바꿀 수 있습니다.

+0

고마워 내 문제가 해결 :) –

관련 문제