Archives
Recent Posts
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[44일차 Android] assets 본문

Computer/Android

[44일차 Android] assets

Wise-99 2023. 7. 10. 18:41

 

 

 

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT

 

 

 

📖 assets

  • raw 데이터 파일은 raw 폴더에 담으면 스트림을 쉽게 추출할 수 있다는 장점이 있지만 하위 폴더를 만드는 등 계층적으로 관리할 수 없다는 단점이 있다.
  • 만약 파일들을 계층적인 폴더 구조를 만들어 관리하겠다면 assets 폴더를 사용한다.
  • assets 폴더는 res 폴더 내부가 아니므로 리소스(R 클래스)로 관리할 수 없다.

 

 

 

예제 코드

assets 파일 생성 후 담겨있는 폴더와 데이터

 

 

 

assets/text/data.txt 파일 읽어오기

button.setOnClickListener {
    // Assets 폴더에 있는 파일과 연결된 스트림 추출
    val inputStream = assets.open("text/data.txt")
    val inputStreamReader = InputStreamReader(inputStream, "UTF-8")
    val bufferedReader = BufferedReader(inputStreamReader)

    var str:String? = null
    val stringBuffer = StringBuffer()

    
    do {
        // 라인 단위로 데이터를 읽어오기
        str = bufferedReader.readLine()
        
        // 읽어온 데이터ㅏ null이 아니면 stringBuffer에 추가
        if(str != null){
            stringBuffer.append("${str}\n")
        }
        
    // 읽어오는 데이터가 null이 아닐 때 동안 반복
    }while (str != null)

    bufferedReader.close()
    
    // 읽어온 데이터를 textView에 적용
    textView.text = stringBuffer.toString()
}

결과

 

 

 

assets/fonts/폰트 적용하기

button2.setOnClickListener {
    // Assets 폴더에 있는 폰트 파일을 이용해 폰트 객체 생성
    val typeFace = Typeface.createFromAsset(assets, "fonts/NanumPen.ttf")
    // TextView 적용
    textView.typeface = typeFace
    // 텍스트 사이즈 적용
    textView.textSize = 50.0f
}

결과

'Computer > Android' 카테고리의 다른 글

[50일차 Android] Content Provider  (0) 2023.07.14
[44일차 Android] SQLiteDatabase  (0) 2023.07.10
[44일차 Android] Raw  (0) 2023.07.10
[43일차 Android] 파일 입출력  (0) 2023.07.10
[43일차 Android] Application Class  (0) 2023.07.06