Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么dimen资源不一致以及如何获得正确的值?_Java_Android_Android Xml_Text Size - Fatal编程技术网

Java 为什么dimen资源不一致以及如何获得正确的值?

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));

我在写一个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));
        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(“缩放像素”)作为文本大小

虽然我不知道