상세 컨텐츠

본문 제목

[안드로이드] 검색한 단어 하이라이트(highlight) 주는 방법

안드로이드

by aries574 2022. 1. 28. 15:40

본문


이번 시간에는 텍스트뷰에 있는 문자들에서

원하는 단어를 검색한 후 하이라이트 주는

방법에 대하여 알아보겠습니다.


목차

1. 실행 화면

2. 라이브러리 등록

3. 앱 설정

4. 문자 등록하기

5. 메인 화면 구성

6. 메인 코드 구현


1. 실행 화면

 

2. 라이브러리 등록

build.gradle(Module:프로젝트명:app)

dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.

implementation 'com.xeoh.android:text-highlighter:1.0.3'

참조문서

https://github.com/xeoh/TextHighlighter

 

GitHub - xeoh/TextHighlighter: TextHighlighter for android. Highlights your TextView easily.

TextHighlighter for android. Highlights your TextView easily. - GitHub - xeoh/TextHighlighter: TextHighlighter for android. Highlights your TextView easily.

github.com

 

3. 앱 설정 AndroidManifest.xml

  액티비티 태그 속성에 windowSoftInputMode를 추가하고

  adjustNothing, stateHidden을 넣는다.

adjustNothing: Layout에 어떤 영향도 주지 않고 소프트 키보드가 올라온다.
stateHidden: Activity 실행 시 키보드가 자동으로 올라오지 않게 한다.

    <activity
            android:name=".MainActivity"
            android:exported="true"
            android:windowSoftInputMode="adjustNothing|stateHidden">

 

 

4. 문자 등록하기 res -> values -> strings.xml

 공통 문자에 문자를 등록한다.

 검색할 문장에 쓰인다.

<string name="android">Android is a mobile operating system based on a modified version of
        the Linux kernel and other open source software, designed primarily for touchscreen mobile
        devices such as smartphones and tablets. Android is developed by a consortium of developers known as
        the Open Handset Alliance and commercially sponsored by Google. It was unveiled in November 2007,
        with the first commercial Android device, the HTC Dream, being launched in September 2008.

        It is free and open-source software; its source code is known as Android Open Source Project (AOSP),
        which is primarily licensed under the Apache License. However most Android devices ship with
        additional proprietary software pre-installed,[14] most notably Google Mobile Services (GMS)[15]
        which includes core apps such as Google Chrome, the digital distribution platform Google Play,
        and associated Google Play Services development platform.</string>

 

5. 메인 화면 구성 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/text_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/android" />
        </LinearLayout>
    </ScrollView>

    <Button
        android:id="@+id/search_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="128dp"
        android:text="Button" />

    <EditText
        android:id="@+id/search_edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="19dp"
        android:hint="search"
        android:inputType="text" />
</RelativeLayout>



6. 메인 코드 구현 MainActivity.java

public class MainActivity extends AppCompatActivity {

    EditText searchEditText;
    TextView textView;

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

        searchEditText = findViewById(R.id.search_edit_text);
        textView = findViewById(R.id.text_view);

        Button search_btn = findViewById(R.id.search_btn);
        search_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String word = searchEditText.getText().toString();

                new TextHighlighter()
                        .setBackgroundColor(Color.parseColor("#FFFF00")) //바탕색깔
                        .setForegroundColor(Color.RED) //글씨색깔
                        .addTarget(textView) //검색할 대상
                        .setBold(true)
                        .highlight( word, TextHighlighter.BASE_MATCHER); //대소문자 구별안함: CASE_INSENSITIVE_MATCHER

            }
        });

    }//onCreate

} //MainActivity

 

2020.04.16 - [안드로이드] - [안드로이드] 텍스트뷰 공통 문자 등록 및 사용(strings.xml)

 

[안드로이드] 텍스트뷰 공통문자 등록 및 사용(strings.xml)

2020.04.15 - [안드로이드] - [안드로이드] 화면(액티비티) Activity 세로모드 가로모드 고정(오류 조치방법) manifests -> androidmanifest.xml 파일을 열어보면 " data-og-host="aries574.tistory.com" data-og-..

aries574.tistory.com

2022.01.26 - [안드로이드] - [안드로이드] 메시지 (Toast) 쉽게 꾸미는 방법

 

[안드로이드] 메시지 (Toast) 쉽게 꾸미는 방법

이번 시간에는 Toast 메시지를 쉽게 꾸미는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. 메인 화면 구성 activity_main.xml 4. 메인 코드 구현 MainActivity.java 1. 실행 화면 2...

aries574.tistory.com

2022.01.19 - [안드로이드] - [안드로이드] 내가 원하는 글씨체 폰트(Font) 적용하는 방법

 

[안드로이드] 내가 원하는 글씨체 폰트(Font) 적용하는 방법

이번 시간에는 안드로이드 스튜디오에 있는 기본 글씨체가 아닌 사용자가 원하는 폰트를 적용하는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 폰트 폴더 생성 3. 폰트 추가 4. 메

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역