簡體   English   中英

Android TextView文本對齊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM