이번 시간에는 텍스트뷰에 있는 문자들에서
원하는 단어를 검색한 후 하이라이트 주는
방법에 대하여 알아보겠습니다.
1. 실행 화면
2. 라이브러리 등록
3. 앱 설정
4. 문자 등록하기
5. 메인 화면 구성
6. 메인 코드 구현
build.gradle(Module:프로젝트명:app)
dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.
implementation 'com.xeoh.android:text-highlighter:1.0.3'
참조문서
https://github.com/xeoh/TextHighlighter
액티비티 태그 속성에 windowSoftInputMode를 추가하고
adjustNothing, stateHidden을 넣는다.
adjustNothing: Layout에 어떤 영향도 주지 않고 소프트 키보드가 올라온다.
stateHidden: Activity 실행 시 키보드가 자동으로 올라오지 않게 한다.
<activity
android:name=".MainActivity"
android:exported="true"
android:windowSoftInputMode="adjustNothing|stateHidden">
공통 문자에 문자를 등록한다.
검색할 문장에 쓰인다.
<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>
<?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>
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)
2022.01.26 - [안드로이드] - [안드로이드] 메시지 (Toast) 쉽게 꾸미는 방법
2022.01.19 - [안드로이드] - [안드로이드] 내가 원하는 글씨체 폰트(Font) 적용하는 방법
[안드로이드] 통화코드 통화상징 가져오는 드롭다운메뉴(DropDown Menu) 쉽게 만드는 방법 (0) | 2022.01.30 |
---|---|
[안드로이드] 메시지(Toast) 쉽게 꾸미는 방법 2탄 (0) | 2022.01.29 |
[안드로이드] 밀어서 날짜 변경하는 달력(SlideDatePicker) 쉽게 만드는 방법 (0) | 2022.01.27 |
[안드로이드] 메시지 (Toast) 쉽게 꾸미는 방법 (0) | 2022.01.26 |
[안드로이드] 플립시계(Flip_Digit) 쉽게 만드는 방법 (0) | 2022.01.25 |
댓글 영역