Java 为什么dimen资源不一致以及如何获得正确的值?
我在写一个Android应用程序。我基本上创建了以下Java 为什么dimen资源不一致以及如何获得正确的值?,java,android,android-xml,text-size,Java,Android,Android Xml,Text Size,我在写一个Android应用程序。我基本上创建了以下dimen资源: <dimen name="button_text_size">11pt</dimen> Java代码 TextView text = new TextView (this); text.setLayoutParams (new LinearLayout.LayoutParams (0, ViewGroup.LayoutParams.WRAP_CONTENT, 3));
dimen
资源:
<dimen name="button_text_size">11pt</dimen>
Java代码
TextView text = new TextView (this);
text.setLayoutParams (new LinearLayout.LayoutParams (0, ViewGroup.LayoutParams.WRAP_CONTENT, 3));
text.setText (secret);
text.setTextSize (getResources().getDimension (R.dimen.button_text_size));
理论上,两种观点的文本大小应该相同。但是文本视图的文本大小似乎更大!我不知道为什么会这样。我想这是因为一些单位的问题,但实际上发生了什么?如何获得正确的值?使用
dp或dip
而不是pt
<dimen name="button_text_size">11dp</dimen>
11dp
使用dp或dip
代替pt
<dimen name="button_text_size">11dp</dimen>
11dp
使用dp或dip
代替pt
<dimen name="button_text_size">11dp</dimen>
11dp
使用dp或dip
代替pt
<dimen name="button_text_size">11dp</dimen>
11dp
dp/dip:与密度无关的像素-基于
屏幕的物理密度。这些单位相对于160 dpi
(每英寸点数)屏幕,1dp大致等于1px。什么时候
在高密度屏幕上运行时,用于绘制的像素数
1dp按适合屏幕dpi的系数放大。
同样,在低密度屏幕上,使用的像素数
对于1dp,按比例缩小
另一方面
pt:点-基于屏幕的物理尺寸为1/72英寸
像素-对应于屏幕上的实际像素。本单位 不建议使用度量值,因为实际表示形式可能会有所不同 跨设备 因此,pt和px将在不同屏幕之间变化,而dp**/dip将根据屏幕进行管理。**。如果您希望在不同屏幕上保持一致的大小,请选择dp/dip 有关维度的详细信息,请参见
因此,将XML中的11pt更改为11dp将有所帮助
但从动态角度来看,它被认为是px的浮点值……所以请使用pavan提供的解决方案,如中所示
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.button_text_size));
选择以下值之一。
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,getResources().getDimension(R.dimen.button_text_size));
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,getResources().getDimension(R.dimen.button_text_size));
dp/dip:与密度无关的像素-基于
屏幕的物理密度。这些单位相对于160 dpi
(每英寸点数)屏幕,1dp大致等于1px。什么时候
在高密度屏幕上运行时,用于绘制的像素数
1dp按适合屏幕dpi的系数放大。
同样,在低密度屏幕上,使用的像素数
对于1dp,按比例缩小
另一方面
pt:点-基于屏幕的物理尺寸为1/72英寸
像素-对应于屏幕上的实际像素。本单位 不建议使用度量值,因为实际表示形式可能会有所不同 跨设备 因此,pt和px将在不同屏幕之间变化,而dp**/dip将根据屏幕进行管理。**。如果您希望在不同屏幕上保持一致的大小,请选择dp/dip 有关维度的详细信息,请参见
因此,将XML中的11pt更改为11dp将有所帮助
但从动态角度来看,它被认为是px的浮点值……所以请使用pavan提供的解决方案,如中所示
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.button_text_size));
选择以下值之一。
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,getResources().getDimension(R.dimen.button_text_size));
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,getResources().getDimension(R.dimen.button_text_size));
dp/dip:与密度无关的像素-基于
屏幕的物理密度。这些单位相对于160 dpi
(每英寸点数)屏幕,1dp大致等于1px。什么时候
在高密度屏幕上运行时,用于绘制的像素数
1dp按适合屏幕dpi的系数放大。
同样,在低密度屏幕上,使用的像素数
对于1dp,按比例缩小
另一方面
pt:点-基于屏幕的物理尺寸为1/72英寸
像素-对应于屏幕上的实际像素。本单位 不建议使用度量值,因为实际表示形式可能会有所不同 跨设备 因此,pt和px将在不同屏幕之间变化,而dp**/dip将根据屏幕进行管理。**。如果您希望在不同屏幕上保持一致的大小,请选择dp/dip 有关维度的详细信息,请参见
因此,将XML中的11pt更改为11dp将有所帮助
但从动态角度来看,它被认为是px的浮点值……所以请使用pavan提供的解决方案,如中所示
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.button_text_size));
选择以下值之一。
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,getResources().getDimension(R.dimen.button_text_size));
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,getResources().getDimension(R.dimen.button_text_size));
dp/dip:与密度无关的像素-基于
屏幕的物理密度。这些单位相对于160 dpi
(每英寸点数)屏幕,1dp大致等于1px。什么时候
在高密度屏幕上运行时,用于绘制的像素数
1dp按适合屏幕dpi的系数放大。
同样,在低密度屏幕上,使用的像素数
对于1dp,按比例缩小
另一方面
pt:点-基于屏幕的物理尺寸为1/72英寸
像素-对应于屏幕上的实际像素。本单位 不建议使用度量值,因为实际表示形式可能会有所不同 跨设备 因此,pt和px将在不同屏幕之间变化,而dp**/dip将根据屏幕进行管理。**。如果您希望在不同屏幕上保持一致的大小,请选择dp/dip 有关维度的详细信息,请参见
因此,将XML中的11pt更改为11dp将有所帮助
但从动态角度来看,它被认为是px的浮点值……所以请使用pavan提供的解决方案,如中所示
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.button_text_size));
选择以下值之一。
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,getResources().getDimension(R.dimen.button_text_size));
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,getResources().getDimension(R.dimen.button_text_size));
试试这个
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.button_text_size));
根据android文档,最好使用sp(“缩放像素”)作为文本大小
试试这个
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.button_text_size));
根据android文档,最好使用sp(“缩放像素”)作为文本大小
试试这个
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.button_text_size));
根据android文档,最好使用sp(“缩放像素”)作为文本大小
试试这个
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.button_text_size));
根据android文档,最好使用sp(“缩放像素”)作为文本大小
虽然我不知道