如果我使用java代码分配一个整数值来改变TextView的某个文本大小,该值将被解释为像素(px)。
有人知道如何在sp中赋值吗?
如果我使用java代码分配一个整数值来改变TextView的某个文本大小,该值将被解释为像素(px)。
有人知道如何在sp中赋值吗?
当前回答
在尝试了所有的解决方案,没有一个给出可接受的结果(可能是因为我在一个默认非常大的字体的设备上工作),下面的方法对我有用(COMPLEX_UNIT_DIP =设备独立像素):
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
其他回答
默认设置为setTextSize,不使用SP单位(像素比例)
public void setTextSize (float size)
在API级别1中添加 将默认文本大小设置为给定值,解释为“缩放像素”单位。这 大小根据当前密度和用户字体大小首选项进行调整。
当接受的答案不起作用时(例如在处理Paint时),您可以使用:
float spTextSize = 12;
float textSize = spTextSize * getResources().getDisplayMetrics().scaledDensity;
textPaint.setTextSize(textSize);
http://developer.android.com/reference/android/widget/TextView.html#setTextSize%28int,%20float%29
例子:
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 65);
在尝试了所有的解决方案,没有一个给出可接受的结果(可能是因为我在一个默认非常大的字体的设备上工作),下面的方法对我有用(COMPLEX_UNIT_DIP =设备独立像素):
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
semeTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
context.getResources().getDimension(R.dimen.text_size_in_dp))