[Android] assets

유민국·2023년 7월 5일
0

assets

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

button.setOnClickListener{
    // Assets 폴더에 있는 파일과 연결된 스트림을 추출한다.
    // asstes 하위 폴더부터 이름을 작성
    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()
        if(str != null){
            stringBuffer.append("${str}\n")
        }
    }while(str != null)

    bufferedReader.close()
    textView.text = stringBuffer.toString()
}

폰트 사용하기

ttf : bipmap, 윈도우에서 정의
otf : vector, 확대시 사용하기 좋음, 맥에서 정의
assets 폴더에는 다양한 종류의 파일들을 담고 사용할 수 있다.
특히 폰트 파일을 손쉽게 사용할 수 있도록 클래스를 제공하고 있다.

button2.setOnClickListener{
    // Assets 폴더에 있는 폰트 파일을 이용해 폰트 객체를 생성한다.
    val typeFace = Typeface.createFromAsset(assets, "fonts/NanumPen.ttf")
    // TextView에 적용한다.
    textView.typeface = typeFace
    textView.textSize = 40.0f
}
profile
안녕하세요 😊

0개의 댓글