Android System Font list 가져오기, 적용하기

OS/Android 2021. 12. 3. 12:36
반응형

system/fonts 디렉토리에 있는 폰트 파일 리스트 출력

 

폰트 파일 적용

 

테스트 코드

import android.graphics.Typeface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.util.Log.*
import android.widget.TextView
import java.io.File

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun onResume() {
        changeFont()
        super.onResume()
    }

    fun changeFont() {
    	// get font files
        val FONT_DIR = "/system/fonts/"
        val fontPaths = ArrayList<String>()
        val fontDir = File(FONT_DIR)
        val fontSuffix = ".ttf";

        for(font in fontDir.listFiles()) {
            if(font.name.endsWith(fontSuffix)) {
                fontPaths.add(font.absolutePath);
            }
        }

        for (fontFile in fontPaths) {
            Log.i("Font test","Font : $fontFile")
        }

		// apply font file
        val textView1 : TextView = findViewById(R.id.textview1)
        val textView2 : TextView = findViewById(R.id.textview2)

        val typeface1 = Typeface.createFromFile("/system/fonts/NotoSerif-Bold.ttf")
        textView1.typeface = typeface1
        textView1.text = "TestView 123 "

        val typeface2 = Typeface.createFromFile("/system/fonts/Roboto-Regular.ttf")
        textView2.typeface = typeface2
        textView2.text = "TestView 123 "
    }
}

 

반응형
: