programing

Android 사용자 지정 단추, 텍스트 색상 변경

iphone6s 2023. 8. 30. 21:26
반응형

Android 사용자 지정 단추, 텍스트 색상 변경

다양한 상태에서 배경을 그릴 수 있도록 변경하는 버튼을 만들었습니다.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true" android:drawable="@drawable/btn_location_pressed" /> <!-- pressed -->
     <item android:state_focused="true" android:drawable="@drawable/btn_location_pressed"/> <!-- focused -->
     <item android:drawable="@drawable/btn_location"/> <!-- default -->
</selector>

여기서 문제는 그리기 가능한 것처럼 텍스트 색상도 변경하려고 하지만 변경할 수 없다는 것입니다.나는 이미 안드로이드:textColor와 안드로이드:color를 시도했지만 첫 번째는 작동하지 않고 두 번째는 내 배경을 바꿉니다.

다음 코드는 제 레이아웃의 일부입니다.텍스트 색상은 일반 상태 텍스트 색상에만 적용되므로 누른 상태에서는 흰색으로 변경할 수 없습니다.

<Button android:id="@+id/location_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:background="@drawable/location"          
        android:textSize="15sp"
        android:textColor="@color/location_color"
        android:textColorHighlight="#FFFFFF"
   />

누가 단서를 잡았습니까?

배경과 마찬가지로 단추의 상태를 나타내는 색상을 만듭니다. 예:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Focused and not pressed -->
    <item android:state_focused="true" 
          android:state_pressed="false" 
          android:color="#ffffff" />

    <!-- Focused and pressed -->
    <item android:state_focused="true" 
          android:state_pressed="true" 
          android:color="#000000" />

    <!-- Unfocused and pressed -->
    <item android:state_focused="false" 
          android:state_pressed="true" 
          android:color="#000000" />

    <!-- Default color -->
    <item android:color="#ffffff" />

</selector>

xml을 res/drawable 폴더(예: res/drawable/button_text_color.xml)의 파일에 넣습니다.그런 다음 그리기 대상을 텍스트 색상으로 설정합니다.

android:textColor="@drawable/button_text_color"

또 다른 방법은 여러분의 수업에서 하는 것입니다.

import android.graphics.Color; // add to top of class  

Button btn = (Button)findViewById(R.id.btn);

// set button text colour to be blue
btn.setTextColor(Color.parseColor("blue"));

// set button text colour to be red
btn.setTextColor(Color.parseColor("#FF0000"));

// set button text color to be a color from your resources (could be strings.xml)
btn.setTextColor(getResources().getColor(R.color.yourColor));

// set button background colour to be green
btn.setBackgroundColor(Color.GREEN);

ok 매우 단순하게 먼저 1. res-valuse 및 open colors.xml 2.copy 1 정의된 텍스트의 예를 들어 #FF4081 및 예를 들어 이름을 흰색으로 변경하고 예를 들어 이와 같은 흰색 값에 대해 #FFFFFFFF로 값을 변경합니다.

<color name="White">#FFFFFF</color>

그리고 당신의 버튼 안에 이 선을 추가하세요.

 b3.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.White));

ok b3는 내 버튼의 이름이기 때문에 당신이 흰색을 사용하고 다른 색상을 변경한 후 흰색을 당신의 색상의 이름으로 변경하면 다른 모든 색상은 동일할 것입니다. 먼저 당신은 제가 pont 2에서 설명한 것처럼 color.xml에서 그 색상을 정의했습니다.

단추의 텍스트 색상 변경

이 메서드는 이제 더 이상 사용되지 않기 때문입니다.

button.setTextColor(getResources().getColor(R.color.your_color));

다음을 사용합니다.

button.setTextColor(ContextCompat.getColor(mContext, R.color.your_color));

사용하다getColorStateList이것처럼.

setTextColor(resources.getColorStateList(R.color.button_states_color))

대신에getColor

setTextColor(resources.getColor(R.color.button_states_color))

언급URL : https://stackoverflow.com/questions/4692642/android-customized-button-changing-text-color

반응형