<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://lawwiki.kr/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>법학위키 - android</title>
        <description></description>
        <link>https://lawwiki.kr/</link>
        <lastBuildDate>Wed, 29 Apr 2026 10:40:04 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://lawwiki.kr/lib/exe/fetch.php/wiki:logo.png</url>
            <title>법학위키</title>
            <link>https://lawwiki.kr/</link>
        </image>
        <item>
            <title>android_에서_hwp_파일만_보여주는_대화상자_만들기</title>
            <link>https://lawwiki.kr/doku.php/android:android_%EC%97%90%EC%84%9C_hwp_%ED%8C%8C%EC%9D%BC%EB%A7%8C_%EB%B3%B4%EC%97%AC%EC%A3%BC%EB%8A%94_%EB%8C%80%ED%99%94%EC%83%81%EC%9E%90_%EB%A7%8C%EB%93%A4%EA%B8%B0?rev=1691078689&amp;do=diff</link>
            <description>일반적인 file chooser는 안드로이드에서 파일 열기 대화상자 만들기를 참고할 것 

1. Intent에 Mime을 구성해 주는 함수 만들기

 
// Custom Mime Type을 Intent에 세팅해 주기
class GetContentWithMultiFilter:ActivityResultContracts.GetContent() {
   override fun createIntent(context: Context, input:String): Intent {
      val inputArray = input.split(&quot;;&quot;).toTypedArray()
      val myIntent = super.createIntent(context, &quot;*/*&quot;)
      myIntent.putExtra(Intent.EXTRA_MIME_TYPES, inputArray)
      return myIntent
    }
}…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 03 Aug 2023 16:04:49 +0000</pubDate>
        </item>
        <item>
            <title>avd블랙스크린문제</title>
            <link>https://lawwiki.kr/doku.php/android:avd%EB%B8%94%EB%9E%99%EC%8A%A4%ED%81%AC%EB%A6%B0%EB%AC%B8%EC%A0%9C?rev=1728205989&amp;do=diff</link>
            <description>블랙스크린 문제

종종 안드로이드 버츄얼 디바이스(AVD)가 화면이 까만 상태로 아무것도 안 보이는 경우가 발생할 수 있다.

이 경우에 대한 해결책은 콜드부트(Cold Boot)를 하는 것이다.

방법 : 콜드 부트</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 06 Oct 2024 09:13:09 +0000</pubDate>
        </item>
        <item>
            <title>clickabletext</title>
            <link>https://lawwiki.kr/doku.php/android:clickabletext?rev=1722165540&amp;do=diff</link>
            <description>클릭커블 텍스트는 다음과 같이 만든다. 

코드


@Composable
fun ClickableTextComponent(value : String){

    val initialText  = &quot;By continuing you accept our&quot;
    val privacyPolicyText = &quot;privacy Policy&quot;
    val andText = &quot;and&quot;
    val termsandConditionsText = &quot;Terms of Use&quot;

    val annotatedString = buildAnnotatedString {
        append(initialText)
        withStyle(style = SpanStyle(color = Color.LightGray)) {
            pushStringAnnotation(tag = privacyPolicyText, annotation = privacyPolicyText)
           …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 28 Jul 2024 11:19:00 +0000</pubDate>
        </item>
        <item>
            <title>datastore</title>
            <link>https://lawwiki.kr/doku.php/android:datastore?rev=1746078775&amp;do=diff</link>
            <description>서론

앱과 관련된 데이터를 램이 아닌 낸드와 같은 영구저장장치(보조저장장치)에 저장한 후 이를 재사용하고 싶을 때가 있다.

이를테면 앱의 테마 색깔을 계속 유지하고 싶다거나, 아니면 세이브 파일 부터 이어서 게임을 하고 싶다거나 등의 경우가 생길 수 있다.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 01 May 2025 05:52:55 +0000</pubDate>
        </item>
        <item>
            <title>datepicker</title>
            <link>https://lawwiki.kr/doku.php/android:datepicker?rev=1729082970&amp;do=diff</link>
            <description>목적

안드로이드 Jetpack compose로 날짜 선택도구(Date Picker)를 구현해 보자 

기본 컴퍼넌트

1. Date Picker

안드로이드에서는 DatePicker에서 선택 한 일자를 Long형태로, DatePickerState로 반환해 준다.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 16 Oct 2024 12:49:30 +0000</pubDate>
        </item>
        <item>
            <title>dropdowntextfield</title>
            <link>https://lawwiki.kr/doku.php/android:dropdowntextfield?rev=1746528112&amp;do=diff</link>
            <description>설명

드롭다운(콤보박스)을 텍스트필드와 연결하여 html의 combobox로 만들려고 한다.  

고소해앱에서 실사용하는 모습은 아래와 같다. 

[dropdowntextfield]

스니펫

일단 코드를 보자 


// 드롭다운텍스트필드
@Composable
fun dropDownTextField(items : List&lt;String&gt;, inputString: String) : String {

    var isDropDownExpanded by remember {mutableStateOf(false) }  // 드롭다운 변수

    val textValue = remember { mutableStateOf(inputString) }

    Row(modifier = Modifier.clickable { isDropDownExpanded = !isDropDownExpanded }) {
        OutlinedTextField(
            value =  tex…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 06 May 2025 10:41:52 +0000</pubDate>
        </item>
        <item>
            <title>hwp_manipulation</title>
            <link>https://lawwiki.kr/doku.php/android:hwp_manipulation?rev=1738078949&amp;do=diff</link>
            <description>What is HWP

The file extension HWP, HWPX is word processor file type which is developed by Hancom. 

Like DOC or DOCX, the HWP files has its own specification. But, hwp is very like DOC, and hwpx is very similar to DOCX in view of file specification. For example, hwp uses Microsoft compound file like DOC, and hwpx uses zip like DOCX.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 28 Jan 2025 15:42:29 +0000</pubDate>
        </item>
        <item>
            <title>imageincircle</title>
            <link>https://lawwiki.kr/doku.php/android:imageincircle?rev=1749476170&amp;do=diff</link>
            <description>1. Image in the card

The snippet of image in circle is like this


//  이미지 피커 컴퍼저블
Card(shape = CircleShape, modifier = Modifier
    .padding(8.dp)
    .size(100.dp))
{
    Image(painter = if (imageUri.value.isEmpty()) { avatarImage } else { painter },
        contentDescription = &quot;Pick Image&quot;,
        modifier = Modifier
            .wrapContentSize()
            .clickable { imageLauncher.launch(&quot;image/*&quot;) },
        contentScale = ContentScale.Crop)
}
Text(text = &quot;Change Profile Picture&quot;)…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 09 Jun 2025 13:36:10 +0000</pubDate>
        </item>
        <item>
            <title>json파싱하기</title>
            <link>https://lawwiki.kr/doku.php/android:json%ED%8C%8C%EC%8B%B1%ED%95%98%EA%B8%B0?rev=1745419061&amp;do=diff</link>
            <description>JSON 쓰기

1. 원칙

처음에 JSONObject를 선언한 후, put함수로 값을 지정하면 JSON을 쓰게 된다. 

 
    // 최상단 JSON
   val jsonDoc = JSONObject()

   jsonDoc.put(&quot;name&quot;, &quot;Luke Skywalker&quot;)     // 왼족이 키이고 오른쪽은 밸류이다.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 23 Apr 2025 14:37:41 +0000</pubDate>
        </item>
        <item>
            <title>localdatetime을long형으로바꾸기</title>
            <link>https://lawwiki.kr/doku.php/android:localdatetime%EC%9D%84long%ED%98%95%EC%9C%BC%EB%A1%9C%EB%B0%94%EA%BE%B8%EA%B8%B0?rev=1723201321&amp;do=diff</link>
            <description>Kotlin에서 LocalDateTime형식을 Long으로 바꾸고, Long형식을 LocalDateTime형식으로 바꾸는 컨버터는 다음과 같다. 


package com.dklaw.gogo2.database


import java.time.Instant
import java.time.LocalDateTime
import java.time.ZoneId

class DateConveters {

    @TypeConverter
    fun fromLocalDate(date : LocalDateTime) : Long {
        return date.atZone(ZoneId.systemDefault()).toEpochSecond()
    }

    @TypeConverter
    fun toDateTime(time : Long) : LocalDateTime {
        return  LocalDateTime.ofInstant(Instant.ofEpochMilli(t…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 09 Aug 2024 11:02:01 +0000</pubDate>
        </item>
        <item>
            <title>radiobutton</title>
            <link>https://lawwiki.kr/doku.php/android:radiobutton?rev=1729917296&amp;do=diff</link>
            <description>소개

고소해앱에서 라디오버튼을 구현해서 다음과 같이 사용하고 있다. 

[radiobutton]

스니펫

특별히 설명할게 없다.


@Composable
fun KindRadioGroup(
    mItems: List&lt;String&gt;,
    selected: String,
    setSelected: (selected: String) -&gt; Unit,
) {
    Row(
        modifier = Modifier.fillMaxWidth().padding(8.dp),
        horizontalArrangement = Arrangement.SpaceEvenly,
        verticalAlignment = Alignment.CenterVertically
    ) {
        mItems.forEach { item -&gt;
            Row(
                verticalAlignment = Alignment.CenterVertic…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 26 Oct 2024 04:34:56 +0000</pubDate>
        </item>
        <item>
            <title>rememberasyncimagepainter</title>
            <link>https://lawwiki.kr/doku.php/android:rememberasyncimagepainter?rev=1722102687&amp;do=diff</link>
            <description>소개

rememberAsyncImagePainter 함수는 이미지파일을 불러 올 때 쓰는 함수이다.  

rememberImagePainter 함수는 Deprecated 되었으니, 이걸 대신쓰자. 

coil 라이브러리에 포함되어 있다. 

임포트

다음과 같이 불러와 줘야 한다.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 27 Jul 2024 17:51:27 +0000</pubDate>
        </item>
        <item>
            <title>room을사용하여데이터보관</title>
            <link>https://lawwiki.kr/doku.php/android:room%EC%9D%84%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B3%B4%EA%B4%80?rev=1735038295&amp;do=diff</link>
            <description>플러그인 설치

다음을 build.gradle.kts(Module : app)에 추가한다. 


    //Room 버전
    val room_version:String = &quot;2.6.1&quot;
    // Room
    implementation(&quot;androidx.room:room-runtime:$room_version&quot;)
    implementation(&quot;androidx.room:room-ktx:$room_version&quot;)
    // Kotlin annotation processingtool
    kapt (&quot;androidx.room:room-compiler:$room_version&quot;)</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 24 Dec 2024 11:04:55 +0000</pubDate>
        </item>
        <item>
            <title>scoped_storage_사용하기</title>
            <link>https://lawwiki.kr/doku.php/android:scoped_storage_%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0?rev=1691126146&amp;do=diff</link>
            <description>1. 문제점

기존 Android 10(Q, API Level 29)까지는 WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE 권한이 있다면 자유롭게 미디어에 대한 읽기/쓰기 처리가 가능했다. 

즉, AndroidManifest.xml에 


    &lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot;/&gt;
    &lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;/&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 04 Aug 2023 05:15:46 +0000</pubDate>
        </item>
        <item>
            <title>sidebar</title>
            <link>https://lawwiki.kr/doku.php/android:sidebar?rev=1722092466&amp;do=diff</link>
            <description>이 공간 글들
&lt;div class='acmenu'&gt;&lt;ul class='idx'&gt;&lt;li class='open'&gt;&lt;div class='li'&gt;&lt;span class='curid'&gt;android&lt;/span&gt;&lt;/div&gt;&lt;ul class='idx'&gt;&lt;li class='level1'&gt;&lt;div class='li'&gt;start&lt;/div&gt;&lt;/li&gt;&lt;li class='level1'&gt;&lt;div class='li'&gt;android_에서_hwp_파일만_보여주는_대화상자_만들기&lt;/div&gt;&lt;/li&gt;&lt;li class='level1'&gt;&lt;div class='li'&gt;avd블랙스크린문제&lt;/div&gt;&lt;/li&gt;&lt;li class='level1'&gt;&lt;div class='li'&gt;clickabletext&lt;/div&gt;&lt;/li&gt;&lt;li class='level1 divert'&gt;&lt;div class='li'&gt;collection&lt;/div&gt;&lt;/li&gt;&lt;li class='level1'&gt;&lt;div class='li'&gt;datastore&lt;/div&gt;&lt;/li&gt;&lt;li c…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 27 Jul 2024 15:01:06 +0000</pubDate>
        </item>
        <item>
            <title>simpledateformat</title>
            <link>https://lawwiki.kr/doku.php/android:simpledateformat?rev=1745072533&amp;do=diff</link>
            <description>Date형을 포맷화하여 string으로 만드는 것은 다음과 같다. 


SimpleDateFormat(&quot;yyyy년 MM 월 dd일&quot;, Locale.KOREAN).format(myDateVariable)


따라서 다음과 같이 사용할 수 있다.


    Column (modifier = Modifier
        .fillMaxWidth()
        .padding(8.dp)
        .background(MaterialTheme.colorScheme.primary),
        ) {
        Row (modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.SpaceBetween) {
            Text(text = item.quoteTitle, color = Color.White, styl…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 19 Apr 2025 14:22:13 +0000</pubDate>
        </item>
        <item>
            <title>splashscreen</title>
            <link>https://lawwiki.kr/doku.php/android:splashscreen?rev=1749279413&amp;do=diff</link>
            <description>Install

Add this line to build.gradle.kts(Module::App)


    // Splash screen
    implementation(&quot;androidx.core:core-splashscreen:1.0.0&quot;)


Implemantion

1. MainActivity

Add this code to MainActivity.kts


        // 스플래시 스크린 딜레이 시작
        var keepSplashOnScreen = true
        val delay = 1500L

        installSplashScreen().setKeepOnScreenCondition { keepSplashOnScreen }
        Handler(Looper.getMainLooper()).postDelayed({ keepSplashOnScreen = false }, delay)
        // 스플래시 스크린 딜레이 끝.…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 07 Jun 2025 06:56:53 +0000</pubDate>
        </item>
        <item>
            <title>start</title>
            <link>https://lawwiki.kr/doku.php/android:start?rev=1722092511&amp;do=diff</link>
            <description>안드로이드(Android) 개발과 관련한 팁들을 모아보았다. 



Android 팁 모음

	* collection
		* search
		* sidebar
		* sort

	* pdfdocument
		* commandmirroring
		* drawingtagble
		* filesave_in_android
		* measuringparagraph
		* multiline
		* pdfdocument_start
		* sectioning
		* sidebar

	* android_에서_hwp_파일만_보여주는_대화상자_만들기
	* avd블랙스크린문제
	* clickabletext
	* datastore
	* datepicker
	* dropdowntextfield
	* hwp_manipulation
	* imageincircle
	* json파싱하기
	* localdatetime을long형으로바꾸기
	* radiobutton
	* rememberasyncimagepainter
…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 27 Jul 2024 15:01:51 +0000</pubDate>
        </item>
        <item>
            <title>switchbutton</title>
            <link>https://lawwiki.kr/doku.php/android:switchbutton?rev=1731598263&amp;do=diff</link>
            <description>소개

다음과 같이 옆에 라벨이 있는 이미지 스위치 버튼을 구현하였다.  

고소해 앱에서 사용하고 있다. 

[switch button]

스니펫

내가 만든 코드이다. 


@Composable
fun switchButton(inputValue : Boolean, inputText : String) : Boolean {
    var checked by remember { mutableStateOf(inputValue) }

    OutlinedCard(modifier = Modifier.padding(vertical = 6.dp),
        colors = CardDefaults.cardColors(
        containerColor = MaterialTheme.colorScheme.surfaceVariant),
        border = BorderStroke(1.dp, Color.Black),)
    {
        Column(modifier = Mo…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 14 Nov 2024 15:31:03 +0000</pubDate>
        </item>
        <item>
            <title>timedialpicker</title>
            <link>https://lawwiki.kr/doku.php/android:timedialpicker?rev=1729403501&amp;do=diff</link>
            <description>개요

다음과 같은  Time Dial을 구현하려고 한다. 

[Time Dial Picker]

TimePicker 및 이를 포함한 다이알로그 만들기

timePicker는 TimePickerState를 이용하여 변수를 넘긴다. 

시간과 분을 셋팅하는 것은 다음과 같다.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 20 Oct 2024 05:51:41 +0000</pubDate>
        </item>
        <item>
            <title>urihandle</title>
            <link>https://lawwiki.kr/doku.php/android:urihandle?rev=1738581598&amp;do=diff</link>
            <description>웹 링크를 실행하는 방법은 다음과 같다. 


val uriHandler = LocalUriHandler.current
val uri = &quot;https://aaaa.com&quot; 

IconButton(onClick = {     uriHandler.openUri(uri)}) {
   Icon(painter = painterResource(id = R.drawable.icon_round_question_mark), contentDescription = &quot;More Information about $value&quot;, tint = Color.Blue, modifier = Modifier.size(24.dp))
}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 03 Feb 2025 11:19:58 +0000</pubDate>
        </item>
        <item>
            <title>안드로이드에서_file_chooser_만들기</title>
            <link>https://lawwiki.kr/doku.php/android:%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%97%90%EC%84%9C_file_chooser_%EB%A7%8C%EB%93%A4%EA%B8%B0?rev=1691073213&amp;do=diff</link>
            <description>1. GetContent() 로 만들기

가. 파일 대화 상자 불러 오기

다음 함수가 파일을 대화상자를 불러오는 함수이다. 

 
    val pickPictureLauncher = rememberLauncherForActivityResult(
        ActivityResultContracts.GetContent())
    { hwpUri -&gt;
        if (hwpUri != null) {
            // Update the state with the Uri
  
        }
    }</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 03 Aug 2023 14:33:33 +0000</pubDate>
        </item>
        <item>
            <title>안드로이드에서_javax_의_datatypeconver_사용하는_법</title>
            <link>https://lawwiki.kr/doku.php/android:%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%97%90%EC%84%9C_javax_%EC%9D%98_datatypeconver_%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94_%EB%B2%95?rev=1690968400&amp;do=diff</link>
            <description>최신 안드로이드 스튜디오에서는 다음을 임포트 할 수 없다.


import javax.xml.bind.DatatypeConverter;


위 파일을 임포트하기 위해서는 build.gradle에 다음 의존성을 추가해야 한다.


implementation 'javax.xml.bind:jaxb-api:2.3.1'</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 02 Aug 2023 09:26:40 +0000</pubDate>
        </item>
        <item>
            <title>에뮬레이터저장폴더</title>
            <link>https://lawwiki.kr/doku.php/android:%EC%97%90%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0%EC%A0%80%EC%9E%A5%ED%8F%B4%EB%8D%94?rev=1726576174&amp;do=diff</link>
            <description>AVD (Android Virtual Device)로 개발을 진행할 경우, 

에뮬레이터의 어느 경로에 파일이 저장되는지를 알아보자 

디바이스 익스플로러

[Device Manager] -&gt;  더 보기 버튼 -&gt;  [Open in Device Explorer]를 선택한다.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 17 Sep 2024 12:29:34 +0000</pubDate>
        </item>
        <item>
            <title>접근성지시자</title>
            <link>https://lawwiki.kr/doku.php/android:%EC%A0%91%EA%B7%BC%EC%84%B1%EC%A7%80%EC%8B%9C%EC%9E%90?rev=1739189212&amp;do=diff</link>
            <description>안드로이드 앱은 각 요소별로 접근성 요소를 넣어줘야 한다. 

즉, 시각장애인을 위하여 각 UI별로 기계가 대신 읽어줄 수 있게 해줘야 하는 것이다. 

만약 Text 요소가 들어간 항목은 그 텍스트를 그대로 읽어주기 때문에 문제될게 없다.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 10 Feb 2025 12:06:52 +0000</pubDate>
        </item>
        <item>
            <title>클래스와리스트를사용하기</title>
            <link>https://lawwiki.kr/doku.php/android:%ED%81%B4%EB%9E%98%EC%8A%A4%EC%99%80%EB%A6%AC%EC%8A%A4%ED%8A%B8%EB%A5%BC%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0?rev=1723129370&amp;do=diff</link>
            <description>간단한 투두앱을 만들어 보자 

간단한 데이터 만들기

우리는 data class를 이용하여 Todo 데이터의 구조를 맏들 것이다.

그리고 이렇게 만든 데이터 클래스에 데이터를 다음과 같이 집어 넣어 보자</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 08 Aug 2024 15:02:50 +0000</pubDate>
        </item>
        <item>
            <title>텍스트문장비교하기</title>
            <link>https://lawwiki.kr/doku.php/android:%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%AC%B8%EC%9E%A5%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0?rev=1746290259&amp;do=diff</link>
            <description>목적

안드로이드 앱 내에서 Speech-to-text로 만든 문장을 제시어와 비교하려고 한다. 

다음과 같이 문장 중 특정 단어가 잘못되었음을 나타내려고 하는 것이다. 

[java text diff]

글자수로 비교하기

가장 쉽게 생각할 수 있는 것은 문장을 글자로 분해한 후, 그 글자를 하나하나 비교하는 것이다.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 03 May 2025 16:37:39 +0000</pubDate>
        </item>
        <item>
            <title>토스트메시지</title>
            <link>https://lawwiki.kr/doku.php/android:%ED%86%A0%EC%8A%A4%ED%8A%B8%EB%A9%94%EC%8B%9C%EC%A7%80?rev=1722098838&amp;do=diff</link>
            <description>의의

안드로이드에서 토스트 메시지를 만드는 함수 예제이다. 

[토스트 메시지]

개발시에 log 대신에 사용해도 괜찮다. 

토스트 메시지 만들기


    val notification = rememberSaveable { mutableStateOf(&quot;&quot;) }
    if (notification.value.isNotEmpty()) {
        Toast.makeText(LocalContext.current, notification.value, Toast.LENGTH_LONG).show()
        notification.value = &quot;&quot;
    }</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 27 Jul 2024 16:47:18 +0000</pubDate>
        </item>
        <item>
            <title>폰트바꾸기</title>
            <link>https://lawwiki.kr/doku.php/android:%ED%8F%B0%ED%8A%B8%EB%B0%94%EA%BE%B8%EA%B8%B0?rev=1722134126&amp;do=diff</link>
            <description>목표

다음과 같이 커스텀 폰트를 추가할 예정이다. 

[커스텀폰트 추가한 화면 ]

폰트 추가하기

다음과 같이 res 폴더 아래에 font폴더를 만든 후 font폴더 아래와 같은 방식으로 새로운 폰트를 추가하자. 

	*  res 폴더에 커서를 놓은 후 우클릭</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 28 Jul 2024 02:35:26 +0000</pubDate>
        </item>
        <item>
            <title>화면표현단위</title>
            <link>https://lawwiki.kr/doku.php/android:%ED%99%94%EB%A9%B4%ED%91%9C%ED%98%84%EB%8B%A8%EC%9C%84?rev=1722131028&amp;do=diff</link>
            <description>개요

각 디바이스마다 해상도가 다르기 때문에, 다양한 디바이스에서 동일한 사용경험을 얻게 하기 위해서는 가능한 모든 해상도별로 동일한 사용경험을 얻게 하는 변환 작업이 필요하다.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 28 Jul 2024 01:43:48 +0000</pubDate>
        </item>
    </channel>
</rss>
