[英]Android TextView text alignment
我不知道文本將如何預先對齊。 但是我將分別獲得水平和垂直對齊。 以編程方式設置對齊方式的最佳方法是什么。 我可以做這樣的事情:
/**
* Sets text alignment
* @param alignment
*/
public void setAlignment(String alignment, String vAlignment){
if (alignment.equals("Left")){
if (vAlignment.equals("Top"))
setGravity(Gravity.LEFT | Gravity.TOP);
else if (vAlignment.equals("Center"))
setGravity(Gravity.LEFT | Gravity.CENTER);
else if (vAlignment.equals("Bottom"))
setGravity(Gravity.LEFT | Gravity.BOTTOM);
}
//same for other horizontal alignments
還有其他方法嗎? 稍后,我還將不得不考慮文本對齊和擴展,因此,如果我可以將水平和垂直對齊方式分別設置的話,將會更加容易。 可能嗎?
您可以嘗試使用運算符|=
。 它的行為與+=
完全一樣,並且適合於int
值。
public void setAlignment(String alignment, String vAlignment){
int myGravity = 0;
if (alignment.equals("Left")){
myGravity |= Gravity.LEFT;
}
if (vAlignment.equals("Top")){
myGravity |= Gravity.TOP;
}
...
myTextView.setGravity(myGravity);
}
對齊文本視圖的另一種方法是這樣的。
LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(LinearLayout.CENTER_IN_PARENT);
textView.setLayoutParams(lp);
setGravity也是對齊的正確方法!
您可以詢問是否還有其他疑問
而不是在字符串中提供水平和垂直對齊方式,然后進行比較。 給此方法提供int值,只設置一行。 喜歡。
public void setAlignment(int alignment, String vAlignment){
if (vAlignment==48) // vAlignment will be 48=top, 17=center, 80=bottom
setGravity(alignment | Gravity.TOP);
else if (vAlignment==17)
setGravity(alignment | Gravity.CENTER);
else if (vAlignment==80)
setGravity(alignment | Gravity.BOTTOM);
}
或者,您也可以將字符串用作已經使用的vAllinment。
其他方式
public void setAlignment(int alignment, String vAlignment){
if (vAlignment==Gravity.TOP)
setGravity(alignment | Gravity.TOP);
else if (vAlignment==Gravity.CENTER)
setGravity(alignment | Gravity.CENTER);
else if (vAlignment== Gravity.BOTTOM)
setGravity(alignment | Gravity.BOTTOM);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.