Gre*_*ego 51 android textview italic
<TextView android:id="@+id/prodLbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textColor="#FFFFFF"
android:textSize="30dip"
android:textStyle="italic"
android:text="Magnifico"
/>
Run Code Online (Sandbox Code Playgroud)
似乎从最右边的角色剪辑几个像素,至少在480x800模拟器或Nexus One上.
对我来说它看起来像一个bug,但我只是一个Android初学者.我试图向左右添加边距,但它仍然保持裁剪.最后,我的黑客是在文本的两边添加一个空格.还有其他方法吗?
dan*_*abs 20
android:layout_width="wrap_content",为包装内容呈现提供一个矩形.一切都适用于普通文本(非斜体).
一旦你已经italic启用了文本,该文本包裹将尝试融入矩形,因此最右边的字符将除非其未切能(如被切断.,),1等)
建议的解决方案是在文本的末尾有一个空格(或者更好的??)
PS:这也适用于android:gravity="right"因为文本将被推到最右边.如果我们有italic文字,我们就会遇到同样的问题.
找到了另一个解决方案(在使用 4.1.2 和 4.3 时测试wrap_content)。如果您扩展TextView或EditText类,您可以通过onMeasure这种方式覆盖方法:
@Override
protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
final int measuredWidth = getMeasuredWidth();
final float tenPercentOfMeasuredWidth = measuredWidth * 0.1f;
final int newWidth = measuredWidth + (int) tenPercentOfMeasuredWidth;
setMeasuredDimension(newWidth, getMeasuredHeight());
}
Run Code Online (Sandbox Code Playgroud)
您可以在字符串中添加一个 HAIR SPACE
<string name="hair_space"> </string>
String hairSpace = getContext().getString(R.string.hair_space);
textView.setText(hairSpace + originalString + hairSpace)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11853 次 |
| 最近记录: |