Android 응용 프로그램 개발 (문자열 교체 와 텍스트 색상 변경 방안)

응용 개발 에서 텍스트 의 색상 을 바 꾸 고 바 꾸 는 경우 가 있 습 니 다. 문자열 을 연결 하 는 방식 으로 처리 할 수 있 습 니 다. 이런 방식 은 비교적 번 거 롭 고 너무 많은 TextView 를 도입 하여 오늘 여러분 과 간단 하고 효율 적 인 해결 방안 을 공유 할 수 있 습 니 다.
1: TextView 구성 요소 의 텍스트 색상 변경:
//   :  
TextView textView1 = (TextView) findViewById(R.id.text1);
textView1.setText(Html.fromHtml("<font color=\"#ff0000\">  </font>    "));
                                      
//   :  
TextView textView2 = (TextView) findViewById(R.id.text2);
String text = "     !";
SpannableStringBuilder style = new SpannableStringBuilder(text);
style.setSpan(new BackgroundColorSpan(Color.RED), 2, 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); //               
style.setSpan(new ForegroundColorSpan(Color.RED), 0, 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); //             
textView2.setText(style);
 :android string.xml       string   :
//       :
TextView textView3 = (TextView) findViewById(R.id.text3);
String text3 = String.format(getResources().getString(R.string.wether), 18, 30, "    ");
textView3.setText(text3);
4. 567913.% 1 $d 는 첫 번 째 정형 으로 유추 된다.
프로젝트 개발 자 에 게 는 상기 두 가 지 를 결합 시 켜 사용 해 야 합 니 다.많은 textview 의 연결 을 피 할 수 있 습 니 다. 다음 과 같 습 니 다.
   string.xml    :


<string name="wether">    :    %1$d ,  %2$d 。    %3$s!</string>
참고 할 수 있 도록 모든 코드 를 붙 입 니 다.
//               
        TextView textView4 = (TextView) findViewById(R.id.text4);
        String text4 = String.format(getResources().getString(R.string.wether), 18, 30, "    ");
        int index[] = new int[3];
        index[0] = text4.indexOf("18");
        index[1] = text4.indexOf("30");
        index[2] = text4.indexOf("    ");
                                 
        SpannableStringBuilder style2 = new SpannableStringBuilder(text4);
        style2.setSpan(new ForegroundColorSpan(Color.RED), index[0], index[0] + 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        style2.setSpan(new ForegroundColorSpan(Color.GREEN), index[1], index[1] + 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        style2.setSpan(new BackgroundColorSpan(Color.YELLOW), index[2], index[2] + 3,
                Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        textView4.setText(style2);
XML 파일
public class TextViewColor extends Activity {
                               
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                               
        setContentView(R.layout.textview_color);
                               
        //      
        //   :  
        TextView textView1 = (TextView) findViewById(R.id.text1);
        textView1.setText(Html.fromHtml("<font color=\"#ff0000\">  </font>    "));
                               
        //   :  
        TextView textView2 = (TextView) findViewById(R.id.text2);
        String text = "     !";
        SpannableStringBuilder style = new SpannableStringBuilder(text);
        style.setSpan(new BackgroundColorSpan(Color.RED), 2, 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); //               
        style.setSpan(new ForegroundColorSpan(Color.RED), 0, 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); //             
        textView2.setText(style);
                               
        //       :
        TextView textView3 = (TextView) findViewById(R.id.text3);
        String text3 = String.format(getResources().getString(R.string.wether), 18, 30, "    ");
        textView3.setText(text3);
                               
        //               
        TextView textView4 = (TextView) findViewById(R.id.text4);
        String text4 = String.format(getResources().getString(R.string.wether), 18, 30, "    ");
        int index[] = new int[3];
        index[0] = text4.indexOf("18");
        index[1] = text4.indexOf("30");
        index[2] = text4.indexOf("    ");
                               
        SpannableStringBuilder style2 = new SpannableStringBuilder(text4);
        style2.setSpan(new ForegroundColorSpan(Color.RED), index[0], index[0] + 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        style2.setSpan(new ForegroundColorSpan(Color.GREEN), index[1], index[1] + 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        style2.setSpan(new BackgroundColorSpan(Color.YELLOW), index[2], index[2] + 3,
                Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        textView4.setText(style2);
    }
}
근원http://iandroiddev.com/post/2012-05-29/40026712669

좋은 웹페이지 즐겨찾기