오늘도 삽질중

android SpannableString을 사용해서 text 일부분만 컬러변경하기 본문

안드로이드

android SpannableString을 사용해서 text 일부분만 컬러변경하기

Choi3950 2019. 8. 28. 17:22
반응형

text 중에서 일부분만 컬러를 바꾸고 싶을 경우에 사용하시면 됩니다.


기초적인 틀만 잡혀있으니 다양하게 변형해서 사용하시길 바랍니다.



전체소스 및 결과화면입니다.




MainActivity.class

public class MainActivity extends AppCompatActivity {
TextView textView;

@Override
protected void onCreate( @Nullable Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );

textView = findViewById( R.id.textview );


textView.setText( "hello Android" );
textFormColor( textView, textView.getText( ).toString( ), 2, 3 );

// 또는
// textFormColor( textView , "hello Android" ,2,3 );


}

/**
* @param v textview
* @param text string text
* @param left left color position
* @param right right color position
*/
public void textFormColor( View v, String text, int left, int right ) {
if ( text == null ) return;
if ( left < 0 || right < 0 ) return;
if ( text.length( ) < left + right ) return;
if ( v.getClass( ) == AppCompatTextView.class || v.getClass( ) == TextView.class ) {
SpannableString s = new SpannableString( text );

s.setSpan( new ForegroundColorSpan( Color.BLUE ), 0, left, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );
s.setSpan( new ForegroundColorSpan( Color.RED ), text.length( ) - right, text.length( ), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );

( ( TextView ) v ).setText( s );

}
}
}





반응형
Comments