2013-05-31 2 views
5

나는 다음과 같은 XML 파일이 있습니다안드로이드 사용자 정의 배경 XML 보내기 속성

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#FFFFFF"/> 
    <corners android:radius="10dp"/> 
    <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> 
</shape> 

당신이 볼 수 있듯이, 그것은 모두가, 모서리가 둥근 모양입니다. 다음과 같이 활동 레이아웃의 배경으로 사용합니다.

android:background="@drawable/rounded_corners" 

파일의 모양이 현재 흰색으로 설정되어 있습니다. 다른 레이아웃에서는 다른 색상이 필요합니다. 각 색상마다 다른 모양의 XML 파일을 만들어야합니까? 레이아웃에서 배경에 보낼 색상을 지정하는 방법이 필요합니다. 그런 식으로 원하는 모든 색상에 대해 동일한 XML을 사용할 수 있습니다.

감사합니다.

+0

이것은 당신이 찾고있는 것일 수 있습니다 : http://stackoverflow.com/questions/11376516/change-drawable-color-programmatically – TronicZomB

+0

나는 XML을 통해 그것을 설정할 수있는 방법을 찾고 있습니다. background = "red"src = "drawable .."과 같은 것 – Meir

+0

이 경우 가능하다고 믿지 않으며 여러 모양이 필요할 것입니다. 비록 내가 틀릴 수도 있지만,이 경우에도이 작업을 수행하는 방법을 알고 싶습니다. :) – TronicZomB

답변

1
Do I need to create a different shape xml file for each color? 
  • 예, 레이아웃의 xml 파일 자체는
  • 아니, 당신은 그 자바에서 다른 레이아웃 파일에 대해 서로 다른 색상을 적용하는 경우 (Activity에서 다른 레이아웃 파일에 대해 다른 색을 적용 할 경우) 파일. 옵션 2

솔루션 :

// 모양 그릴 수 (rounded_corners.xml)

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#FFFFFF"/> 
    <corners android:radius="10dp"/> 
    <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> 
</shape> 

// 레이아웃 파일

 <Button 
      android:id="@+id/mButton" 
      ... 
      android:background="@drawable/rounded_corners" 
      /> 

// 자바 (활동) 파일

Button mButton = (Button) findViewById(R.id.mButton); 
ShapeDrawable rounded_corners = (ShapeDrawable)mButton.getBackground(); 
rounded_corners.getPaint().setColor(Color.RED); 

도움이되기를 바랍니다 !!

+0

고마워 ... 안드로이드는 wpf에서 조금 배워야합니다 ... – Meir

관련 문제