final float scale = getContext()。getResources()。getDisplayMetrics()。density总是返回1

时间:2013-10-12 16:39:20

标签: android

我之前发布了一条关于在pexcles中设置文本大小的消息。我找到了一些使用以下行设置比例因子的帖子。

 final float scale = getContext().getResources().getDisplayMetrics().density;

在我的acer表和vergin手机上仍然绘制了相同大小的文本。 我的vergin手机的结果大约是320乘400,表格大概是800乘1100 ...

当我使用debuuger跟踪代码时,缩放始终是pne ..

代码列表。

 paint.setColor(Color.WHITE);  

              final float scale = getContext().getResources().getDisplayMetrics().density;
              int size = (int) (18 * scale + 0.5f);

              paint.setTextSize(18); // cGlobals.TranslateX
              canvas.drawText("SETTINGS:", cGlobals.TranslateX(900),cGlobals.TranslateY(150), paint);

1 个答案:

答案 0 :(得分:1)

请尝试以下代码..

final int scale = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 
                     (float) 123.4, getResources().getDisplayMetrics());