2 行のテキストを含む TextView をセットアップしようとしています。2 行目は最初の行よりも短くなっています。
TextView の Layout インスタンス (TextView.getLayout() 経由で取得) を設定して 2 行目を切り捨てる方法はありますか、それとも私が認識していない別の方法がありますか?
編集1
私の意図の誤解がありました: 私は、任意のテキストを設定できる方法でレイアウトされたテキストビューを設定しようとしています. 長さに応じて、次のことが起こります.テキストビューのコンテンツ幅と同じ幅の行ですが、2行目は短くする必要があります。たとえば、半分の幅です。ただし、テキストが十分に長い場合は、2 行目が必要です。
抽象クラス Layout をチェックアウトしましたが、それはサブクラスであり、関数があります
public int getLineEnd(int line)
行の最後の文字の位置を返します。テキストを設定してから、2 行目のレイアウトの幅を確認してから、テキストを短いバージョンに変更する方法があります。とにかく、それはハックな方法のようですが、レイアウトインスタンスを自分で設定できれば(ゲッターなどのセッターメソッドを介して)、よりクリーンで安定したものにすることができます
TextView.getLayout().
カスタム レイアウトを Textview のサブクラスに設定した人はいますか?
編集2 /私自身の解決策
解決策が見つかりました: 2 番目の行が、2 番目の行を短くする理由となった領域と重なっているかどうかを確認しています。もしそうなら、私はテキストを切り捨てています。私が使用した機能:
TextView.getLineCount()
TextView.getLayout().getLineStart(int line)
TextView.getLayout().getLineEnd(int line)
TextView.getPaint().measureText()
たぶん、それは将来の誰にも役立ちます。
ただし、独自のレイアウトを設定する方法については、まだ回答がありません。