Nat*_*Fig 46 android pixels textview pixelformat
这是TextView的扩展.getTextSize()
并setTextSize()
没有被覆盖,我没有扩展这些方法.编程1.6,API级别4.
此代码中的循环导致每次迭代时大小乘以1.5,例如,如果大小最初从200读取getTextSize
,则setTextSize(size)
调用,getTextSize
再次调用则读回300.
public void shrinkTest() {
float size = this.getTextSize();
while (size > 8) {
this.setTextSize(size);
size = this.getTextSize();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
kco*_*ock 148
嘿,混合单位的问题.似乎有点违反直觉,但这是一个简单的解决方案.默认方法setTextSize(float)
假定您输入sp
单位(缩放像素),而getTextSize()
方法返回精确的像素大小.
你可以通过使用替换来解决这个问题setTextSize(TypedValue, float)
,如下所示:
this.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
Run Code Online (Sandbox Code Playgroud)
这将确保您使用相同的单位.
Reu*_*ton 21
setTextSize()
并getTextSize()
与不同的单位合作.set()的参数是与密度无关的"缩放像素",而get()返回普通的旧像素.
小智 5
使用TypedValue传递具有大小的单位,如下所示:
TypedValue.COMPLEX_UNIT_PX //像素
TypedValue.COMPLEX_UNIT_SP //缩放的像素
TypedValue.COMPLEX_UNIT_DIP //与设备无关的像素
setTextSize(TypedValue.COMPLEX_UNIT_SP,18)
归档时间: |
|
查看次数: |
31412 次 |
最近记录: |