基本上我在XML中有这个,但是我必须在代码中重新创建它。我怎么做呢?
<EditText
android:layout_width="140dp"
android:layout_height="20dp"
android:background="@drawable/input_bg01"
android:textSize="10dp"
android:gravity="center"
android:text="111-222-333 FOOO" />
我可以用它来设置文本大小,但是layout_width和height呢?
edTxt.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10);
有没有一种方法告诉代码使用DP单位而不是像素?或者一个转换函数将DP转换为像素?
5条答案
按热度按时间yeotifhr1#
您可以用途:
现在,
pixels
的值相当于设备当前屏幕密度下的10dp
。TypedValue包含其他有助于转换的类似方法。
zpjtge222#
在这里解决。
提取物:
cu6pst1q3#
为了完整起见:这个问题的另一个解决方案(我更喜欢)是here
setTextSize(float)
期望缩放的像素值。因此,setTextSize(10)
会给予你想要的结果。但是,getDimension()
和getDimensionPixelSize()
返回的是以像素为单位的大小。举个例子
其中
<dimen name="edtxt_text_size">10dp</dimen>
是在dimens.xml文件中设置的。uujelgoq4#
关于设置TEXT SIZE:
对于2021年...
幸运的是,正确的现代答案是公正的
或者可以使用COMPLEX_UNIT_SP等。
文本大小精确匹配xml:
选中,在所有设备上,这将产生与在xml中设置完全相同的结果:
关于设置,比如布局参数:
在一个测试设备上,这似乎工作正常。值“h”现在与xml中的“相同”,输入66dp。
xienkqul5#
对于Kotlin来说,使用下面的逻辑来增加/减少字体大小。它在2