IT

android TextView : 배경색을 동적으로 설정하면 작동하지 않습니다.

lottoking 2020. 6. 3. 08:12
반응형

android TextView : 배경색을 동적으로 설정하면 작동하지 않습니다.


안드로이드에서 프로그래밍 방식으로 배경색을 TextView설정해도 작동하지 않는 것 같습니다. 나는 무언가를 놓치고있다!

TextView et = new TextView(activity);
et.setText("350");
et.setBackgroundColor(R.color.white);

내 res / values ​​폴더 에이 파일 (colors.xml)도 있습니다.

<resources>
        <color name="white">#ffffffff</color>
        <color name="black">#ff000000</color>
</resources>

[편집] : 또한 텍스트 색상을 설정하면 TextView가 사라집니다.

TextView c1 = new TextView(activity);
c1.setTextColor(R.color.solid_red);
c1.setText("My Text");

사용하다 et.setBackgroundResource(R.color.white);


이 시도:

TextView c1 = new TextView(activity);
c1.setTextColor(getResources().getColor(R.color.solid_red));
c1.setText("My Text");

색상과 리소스의 유형이 동일하지만이 솔루션을 찾기 위해 몇 시간을 소비한다는 데 동의합니다.


붉은 색을 설정하려면 :

textView.setBackgroundColor(0xfff00000);

또는

<color name="solid_red">#fff00000</color>

textView.setBackgroundResource(R.color.solid_red);

주요 알파 채널을 고려하지 않고 숫자 색상을 만드는 비슷한 문제가있었습니다. 즉. mytext.setTextColor(0xFF0000)(이것은 빨간색 일 것입니다). 이 색상은 붉은 색이지만 it = 0x00FF0000;100 % 불투명 한 값은 0xFFFF0000또는 이므로 투명합니다 mytext.setTextcolor(0xFFFF0000).


이 한 줄의 코드 만 프로그래밍 방식으로 배경을 변경했습니다.

tv.setBackgroundColor(Color.parseColor("#808080"));

웹 서비스가 "# CC2233"과 같은 16 진수 형식의 색상을 반환 할 때 상황이 있었고 setBackGroundColor ()를 사용하여 textView 에이 색상을 넣고 싶었으므로 android Color 클래스를 사용하여 16 진수 문자열의 int 값을 가져 와서 전달했습니다. 언급 된 기능. 모든 것이 효과가있었습니다. 이것은 예입니다 :

String myHexColor = "#CC2233";
TextView myView = (TextView) findViewById(R.id.myTextView);
myView.setBackGroundColor(Color.pasrsehexString(myHexColor));

PS는 다른 솔루션이 효과가 없기 때문에이 답변을 게시했습니다. 나는 이것이 누군가를 도울 수 있기를 바랍니다 :)


올바르게 수행하는 단계는 다음과 같습니다.

  1. 먼저 MainActivity.java에서 TextView 인스턴스를 다음과 같이 선언하십시오.

    TextView mTextView;
    
  2. 다음과 같이 일부 텍스트를 동적으로 설정하십시오 (원하는 경우).

    mTextView.setText("some_text");
    
  3. 이제 배경색을 설정하려면 res-> values-> colors.xml 파일에서 다음과 같이 고유 한 색상을 정의해야합니다.

    <resources>
        <color name="my_color">#000000</color>
    </resources>
    
  4. 이제 자바 파일에서 "my_color"색상을 사용하여 다음과 같이 배경을 동적으로 설정할 수 있습니다.

    mTextView.setBackgroundResource(R.color.my_color);
    

tv.setTextColor(getResources().getColor(R.color.solid_red));

여기 조금 자세하게 설명되어 있습니다.

당신이 활동에 있다면 이것을 사용하십시오

textview.setBackground(ContextCompat.getColor(this,R.color.yourcolor));

코드가 조각난 경우

textview.setBackground(ContextCompat.getColor(getActivity(),R.color.yourcolor));

당신이 recyclerview 어댑터에 있다면 아래 코드를 사용하십시오

textview.setBackground(ContextCompat.getColor(context,R.color.yourcolor));

// use holder.textview if you are in onBindviewholder
//here context is passed from fragment

Color.parseHexColor("17ee27")나를 위해 일하지 않고 대신 Color.parseColor("17ee27")완벽하게 일했습니다.


이를 수행하는 두 가지 방법 :

1. colors.xml 파일에서 다음과 같이 색상을 만듭니다.

<resources>
        <color name="white">#ffffff</color>
</resources>

int activity java 클래스를 다음과 같이 사용하십시오.

et.setBackgroundResource(R.color.white);

2.

et.setBackgroundColor(getResources().getColor(R.color.white));
                or
et.setBackgroundColor(Color.parseColor("#ffffff"));

모든 버전을 지원하려면 다음을 수행하십시오.

myTextView.setBackgroundColor (ContextCompat.getColor (this, R.color.mycolor));


쥬트 사용

ArrayAdapter<String> adaptername = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, your array list);

android:textColor= "텍스트보기가 선언 된 xml 파일에서 원하는 텍스트 색상을 사용할 수 있습니다 . "

참고 URL : https://stackoverflow.com/questions/1466788/android-textview-setting-the-background-color-dynamically-doesnt-work

반응형