2010-11-23 4 views
1

도형으로 정의 된 도형을 TextView의 배경으로 사용하고 있습니다. 이렇게하면 둥근 모서리와 다른 효과를 추가 할 수 있습니다. 형태는 다음과 같이 정의된다 :Android에서 TextView 배경으로 사용되는 도형의 색상을 설정하십시오.

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <corners android:topLeftRadius="8dp" /> 
</shape> 

내가 이런 식으로 사용하고 있습니다 :

<TextView 
    android:id="@+id/project" 
    style="@style/textView" 
    android:background="@drawable/project_textview_background" 
/> 

지금, 내가 프로그래밍 일부 조건에 따라 그 텍스트 뷰의 색상을 변경해야합니다. 나는 그렇게 할 수 없었다.

  • 나는 setBackgroundColor를 시도했으나 이전에 정의한 배경을 덮어 써서 더 이상 둥근 모서리가 보이지 않도록했습니다.
  • 나는 다른 API 메소드의 무리를 보았다하지만 어떤 도움이 아주 많이 주시면 감사하겠습니다 곳

없어. 고맙습니다. 아이디어가 있습니까?

+0

약간의 코드를 게시 해주십시오. –

답변

2

실제로 솔루션은 드로어 블 리소스를 사용하는 대신 코드에서 모양과 색을 설정하는 것이 었습니다. PaintDrawable(int color)을 사용하여 원하는 배경색을 정의 할 수 있습니다. 그런 다음 setCornerRadoii (float [])를 사용하여 둥근 모서리를 정의하고 마지막으로 PaintDrawable 객체를 textView 배경에 할당했습니다. charme처럼 일 했어.

0

이미 정의한 코너 특성을 가진 다른 모양을 만들 수 있습니다. 당신이 언급 한 조건에 포커스를 누르거나에 의존하는 경우 BGCOLOR와 셀을 채우기 위해 방법은 다음 웹 페이지로 작성되었습니다. (고체) http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

그리고 , 당신은 선택이 아닌 모양을 만들기 위해 더 나은 것입니다. 안드로이드 참조에서 키워드 "ColorStateList"로 검색하십시오. 나는 그 주소를 떠나고 싶지만 내 평판 때문에 할 수 없다 ;;;

+0

조금 이상하지만 12 가지 색상이 있습니다. 12 가지 모양을 만드는 것을 피하고 싶었습니다. ColorStateList를 다시 살펴 보겠습니다. 감사합니다 –

+0

ViewState (사용 가능, 선택됨, 등 ...)에 의존하지 않으므로 ColorStateList를 사용할 수 없습니다. 사용자 정의 상태를 정의 할 수있는 방법이 없지만 어떻게 알지는 못합니다. –

+0

그러면 맞춤 widget을 파생 된 textview를 만드는 방법은 무엇입니까? – sonee

관련 문제