안드로이드 자바
[Java][Android] SpannableString 와 ImageSpan으로 TextView에 아이콘 넣기
teamnova
2025. 4. 20. 17:47
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
시연 화면입니다.