투케이2K

713. (Android/Java) SpannableString 사용해 텍스트 부분 색상 및 폰트, 크기 변경 수행 - text color, font, size 본문

Android

713. (Android/Java) SpannableString 사용해 텍스트 부분 색상 및 폰트, 크기 변경 수행 - text color, font, size

투케이2K 2023. 12. 15. 08:55
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [테스트 함수 수행]
    // -----------------------------------------------------------------------------------------
    public void testMain(){
        S_Log._D_("테스트 함수 수행 실시", null);

        // [로직 처리 실시]
        try {

            // [String 문자열 선언]
            String text = "안녕하세요. TWOK입니다";

            // [SpannableString 객체 생성]
            SpannableString spannableString = new SpannableString(text);

            // [변경하려는 문자열 인덱스 위치 확인]
            String searchText = "TWOK";

            int startIdx = text.indexOf(searchText);
            int endIdx = startIdx + searchText.length();

            // [SpannableString 속성 지정]
            spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#2b5d5b")), startIdx, endIdx, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            spannableString.setSpan(new StyleSpan(Typeface.BOLD), startIdx, endIdx, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            spannableString.setSpan(new RelativeSizeSpan(1.3f), startIdx, endIdx, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);

            // [팝업창 표시 수행]
            new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
                @Override
                public void run() {

                    new AlertDialog.Builder(A_Webview.this)
                            .setTitle("알 림") //[팝업창 타이틀 지정]
                            //.setIcon(R.drawable.app_icon) //[팝업창 아이콘 지정]
                            .setMessage(spannableString) //[팝업창 내용 지정]
                            .setCancelable(false) //[외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
                            .setPositiveButton("확 인", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    // TODO Auto-generated method stub
                                    // -----------------------------------------
                                    // TODO [확인 버튼 클릭 이벤트 처리]
                                    // -----------------------------------------
                                }
                            })
                            .show();

                }
            }, 5000);
        }
        catch (Exception e) {
            S_Log._printStackTrace_(A_Webview.this, S_FinalMsg.LOG_BUG_STATE, null, e);
        }

    }
 

[결과 출력]

 
 

 
반응형
Comments