android setTextSize的行为不同

时间:2017-03-12 13:34:50

标签: android

我有这种情况

<dimen name="fld_label_size">22sp</dimen>
<dimen name="fld_stat_size">12sp</dimen>
<dimen name="question_fld_label_size_text">24sp</dimen>

在我的维度文件

然后在活动中

lblEnd.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.question_fld_label_size_text));

在表格布局中的其他活动

    TableRow.LayoutParams lp1 = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,TableRow.LayoutParams.WRAP_CONTENT, 0.2f);
    TextView tv1 = new TextView(this);
    tv1.setText(percent);
    tv1.setTextColor(Color.BLACK);
    tv1.setLayoutParams(lp1);

    tv1.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.fld_stat_size));

第一个你看得对,第二个是如此之小,以至于字符甚至不能区分

我做错了什么?

修改

我尝试将代码放在LinearLayout而不是表中。结果是不同的。我按预期看到了textView

RelativeLayout rl = (RelativeLayout) findViewById(R.id.survey);
TextView tv0 = new TextView(this);
tv0.setTextSize(TypedValue.COMPLEX_UNIT_SP, getResources().getDimension(R.dimen.fld_stat_size));
tv0.setText(c.getString(0));

tv0.setId(Resources.getSystem().getIdentifier("txtView_"+c.getString(5),null,null));
tv0.setTextColor(Color.BLACK);
tv0.setPadding(0,150,0,0);
rl.addView(tv0);

1 个答案:

答案 0 :(得分:0)

从您的代码中可以清楚地看到,您正在使用&#34; fld_label_size&#34;在第一次活动中是22sp。第二,你正在使用&#34; fld_stat_size&#34;,即12sp。建议使用至少14sp来使文本区分和清晰。