728x90
안녕하세요,
오늘은 SpannableString 와 ImageSpan을 사용하여 텍스트에 아이콘(이미지)를 삽입하는 예제를 만들어보겠습니다.
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.textView);
// 1. 텍스트 준비 (앞에 공백 포함)
SpannableString spannable = new SpannableString(" 경고 메시지입니다.");
// 2. 사용할 이미지 가져오기
Drawable drawable = ContextCompat.getDrawable(this, R.drawable.warning_24px); // 아이콘 파일 필요
if (drawable != null) {
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
// 3. 이미지 span 생성 및 적용
ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BOTTOM);
spannable.setSpan(imageSpan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
}
// 4. TextView에 적용
textView.setText(spannable);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:padding="24dp">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"/>
</LinearLayout>
아이콘은 아래 사이트에서 다운로드 가능합니다.
https://fonts.google.com/icons
Material Symbols and Icons - Google Fonts
Material Symbols are our newest icons consolidating over 2,500 glyphs in a single font file with a wide range of design variants.
fonts.google.com
시연 화면입니다.

'안드로이드 자바' 카테고리의 다른 글
| [Java][Android] Lottie 라이브러리 활용해 애니메이션 기능 구현하기 (2) | 2025.04.22 |
|---|---|
| [Java][Android] 안드로이드 Java로 유튜브 검색 구현하기 (0) | 2025.04.21 |
| [Java][Android] InputFilter 사용해서 글자 수 제한하기 (0) | 2025.04.15 |
| [Java][Android] SpannableString 로 TextView 특정 단어만 색 바꾸기 & 클릭 이벤트 주기 (0) | 2025.04.13 |
| [Java][Android]Web3j 활용해 지갑 주소 생성하기 (0) | 2025.04.11 |