다음과 같이 다른 상태에서 배경 드로어 블을 변경하는 버튼을 만들었습니다.
<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 -->
여기서 문제는 드로어 블과 마찬가지로 textColor를 변경하려고하지만 할 수 없다는 것입니다. 이미 android : textColor 및 android : 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);
답변
확인은 매우 간단합니다. 먼저 1. res-valuse로 이동하여 colors.xml을 엽니 다. 2. 예를 들어 # FF4081과 같이 정의 된 텍스트의 1을 복사하고 이름을 변경합니다. 이와 같은 흰색 값
<color name="White">#FFFFFF</color>
그런 다음 버튼 안에이 줄을 추가하십시오.
b3.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.White));
확인 b3은 내 버튼의 이름이므로 ur 버튼의 이름이 변경되었습니다. 다른 색상을 변경 한 다음 흰색을 색상 이름으로 변경하면 흰색을 사용하지만 다른 색상은 색상으로 정의하면 다른 모든 색상은 동일합니다. 내가 퐁 2에서 설명한 것처럼 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))