首页 > 解决方案 > TextView大小问题android

问题描述

我从 dimens.xml 设置 texview 大小。但它在不同的移动屏幕上表现不同,例如,荣耀 6x 设备看起来字体很大,而 intex 移动看起来很小,但我应用了相同的文本大小。

这是我的代码:-

private fun changeStandardDialog(standardList: ArrayList<Category>) {
    val factory = LayoutInflater.from(this)
    val standardDialog = factory.inflate(R.layout.select_standard_diolog, null)
    selectedStandardId = SettingsHandler(this).getSettings("default_standard")

    for (item in standardList) {
        val rdbtn = RadioButton(this)
        rdbtn.id = item.id
        rdbtn.text = item.title

        if (selectedStandardId.toInt() == item.id) {
            rdbtn.isChecked = true
        }
        rdbtn.textSize = resources.getDimension(R.dimen.radio_text_size)
        val textColor = Color.parseColor("#323642")
        rdbtn.setButtonTintList(ColorStateList.valueOf(textColor));

        rdbtn.setPadding(20, 30, 30, 30)
        standardDialog.selectSubjectList.addView(rdbtn)
    }

    AlertDialog.Builder(this, R.style.MyDialogTheme)
            .setTitle(R.string.selectStd)
            .setPositiveButton("Ok") { dialog, whichButton ->
                if (standardDialog.selectSubjectList.checkedRadioButtonId > 0) {
                    changeSelectedStandardTitle(standardDialog.selectSubjectList.checkedRadioButtonId)
                    settingHandler.updateSettingsViaKey("default_standard", standardDialog.selectSubjectList.checkedRadioButtonId.toString())
                }
                dialog.dismiss()
            }
            .setNegativeButton("Cancel") { dialog, whichButton ->
                dialog.dismiss()
            }
            .setView(standardDialog)
            .create()
            .show()
}

我的 R.dimen.radio_text_size 的dimens.xml :-

<dimen name="radio_text_size">6sp</dimen>

在这里,我使用 6 sp 作为单选按钮 Textview 显示不同的屏幕文本大小左侧 Honor 6x ScreenShot 和右侧 Intex

在此处输入图像描述

标签: androidtextviewsizeandroid-alertdialog

解决方案


尝试这个:

rdbtn.textSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,resources.getDimension(R.dimen.radio_text_size), resources.getDisplayMetrics());

推荐阅读