在自定义视图中设置textSize会导致巨大的文本

我在我的自定义视图的构造函数中调用以下内容:

private void style(Resources.Theme theme, AttributeSet attrs) { TypedArray a = theme.obtainStyledAttributes( attrs, R.styleable.StackedTextView, 0, 0); try { DebugTool.assertTrue(holdr != null, "View holder has not been properly intialized."); String line1 = a.getString(R.styleable.StackedTextView_line1); setLine1(line1); String line2 = a.getString(R.styleable.StackedTextView_line2); setLine2(line2); line1Size = a.getDimension(R.styleable.StackedTextView_line1_textSize, 20); line2Size = a.getDimension(R.styleable.StackedTextView_line2_textSize, 20); if (line1Size > 0) { holdr.textLine1.setTextSize(line1Size); } if (line2Size > 0) { holdr.textLine2.setTextSize(line2Size); } } finally { a.recycle(); } } 

它应该为2个文本字段设置文本和文本大小。

除了文本内容的string格式(工作正常)之外,我在我的attr.xml文件中还有以下内容。

  <attr name="line1_textSize" format="dimension" /> <attr name="line2_textSize" format="dimension" /> 

当我使用这个视图,并通过xml使用维度来设置文本大小时,

  <com.me.app.view.component.StackedTextView android:id="@+id/overview_total_reviews" app:line1="40" app:line2="Rating" style="@style/OverviewStackedText" app:line1_textSize="10sp" app:line2_textSize="12sp" /> 

文本结果显着大于预期。 我只是分别设置10和12sp,文本大小更接近30sp。

任何人都可以看到我做错了什么? 我是否需要使用DisplayMetrics来做些事情,以确保事物得到适当的扩展?

编辑:添加一些澄清

维度被拿起。 当我使用我的自定义属性(在xml中)设置不同的文本大小时,文本会改变。 我也试过使用getDimensionPixelSize

就好像计算/维度检索是错误的。 1sp(或dp)更改导致重大更改。

Solutions Collecting From Web of "在自定义视图中设置textSize会导致巨大的文本"