首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android TextView 兩側文字中間用點填充:簡單實現方案

     編輯:程式設計綜合問答

需求

左側文字、右側文字,中間以點點 .......... 填滿剩餘寬度。

方案一:中間插入第三個 TextView(最簡單)

<RelativeLayout ...>
    <TextView android:id="@+id/left" android:layout_alignParentLeft="true" ... />
    <TextView android:id="@+id/right" android:layout_alignParentRight="true" ... />
    <TextView
        android:id="@+id/dots"
        android:layout_toRightOf="@id/left"
        android:layout_toLeftOf="@id/right"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text=".................................................."
        android:gravity="center" />
</RelativeLayout>

程式碼中動態設定 dots.setText("") 並根據寬度計算點數,或直接用超長點串配合 ellipsize 截斷。

方案二:自定義 View 繪製(完美適配)

public class DottedTextView extends View {
    private String leftText, rightText;
    private Paint paint = new Paint();
    private float dotSpacing = 4f;

    @Override
    protected void onDraw(Canvas canvas) {
        // 1. 繪製左文字
        // 2. 計算剩餘寬度 = width - leftWidth - rightWidth - padding
        // 3. 循環繪製圓點直到填滿
        // 4. 繪製右文字
    }
}

方案三:Span 標記(進階)

使用 LeadingMarginSpan 或 ReplacementSpan 在單一 TextView 中實現,但實作複雜。

建議

若非極高效能要求,方案一最快落地;追求完美對齊且動態內容多,投資自定義 View。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved