Androidでellipsizeはどういう意味ですか?


199

私が追加したEditText私のレイアウトに、とヒントを追加し、それは水平方向の中央ました。

アプリケーションを実行すると、ヒントは表示されませんでした。私は私がするべきことがわかったellipsizeの価値をTextViewしますstart

<EditText
    android:id="@+id/number1EditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="start"
    android:ems="10"
    android:gravity="center_horizontal"
    android:hint="@string/hint1" />

Androidのドキュメントで、私は読んだ:

設定されている場合、ビューの幅よりも長い単語
は、途中で途切れるのではなく省略されます。

問題はellipsize、辞書にないことです。誰かがellipsize属性ごとにどのようなメリットを得ることができるかを私に説明できますか?そして、の違いは何ですかstartendmiddle


私の更新された答えを親切に参照してください。
Rinkal Bhanderi 2012年

2
btw:「省略された」という実際の単語が構成されています。これは「名詞の動詞」と呼ばれ、コンピューター用語を形成する一般的な方法です。名詞はあなたが知っていると私が思う「楕円」であり、「すること」を意味する「-ize」の終わりを追加することによって動詞にされるので、「楕円サイズ」は「楕円を追加すること」何か"。
Michael Edenfield 2013年

4
古いスペルミス、修正されたことはありません。この用語は実際には「省略」でなければなりません。楕円は、2つの焦点を囲む平面上の曲線であり、焦点の1つから曲線上の任意の点まで直線が引かれます。省略記号は3つのドットです。
radley

ellipseSizeのドキュメントにはまだ説明がありません。
Talha

まだ私の言葉を半分にカットします。ワンピースに残るには言葉が必要です。畜生
filthy_wizard

回答:


388

ここにドキュメントがあります

要件に基づいて、オプションを試すことができます。

ellipsize、新語、使用して短縮テキストの手段省略記号を、すなわち3ドット...以上の一般リガチャーは、省略したビットのために立っています。

テキストビューの元の値がaaabbbcccであり、ビュー内にそのフィッティングがあるとします。

startの出力は次のようになります:... bccc

endの出力は次のようになります:aaab ...

middleの出力は次のようになります:aa ... cc

marqueeの出力は次のようになります:aaabbbccc右から左に自動スライド


ありがとう。しかし、私はすでにそれを読みました。それは私がその意味について検索しているところに「省略された」という言葉を使います。その言葉はその定義では使用できません!! 詳しい説明はありますか?
Hamzeh Soboh

60

私の経験では、エリプシスは以下の2つの属性が設定されている場合にのみ機能します。

android:ellipsize="end"
android:singleLine="true"

textviewの幅については、wrap_contentまたはmatch_parentの両方が適切です。


2
実際にandroid:singleLineはAPIレベル3で廃止されたため、代わりにを使用してくださいandroid:maxLines。注:> singleLineとinputTypeの両方が指定されている場合、inputTypeフラグはsingleLineの値をオーバーライドします。R.attr.html#singleLineで
フィリップ

1
@AlbertoGaona android:ellipsize = "start"とandroid:maxLines = "2"(またはそれ以上)の場合は機能しないことに気付きました。文章が長すぎるのですが、最初は点が見えませんでした。
ka3ak 2018年

17

How to Add an ellipsis in a TextView

android:ellipsizeがAPIレベル1で追加されました。省略記号は3つのピリオドが連続しています。(...)

あなたのXMLで

 <TextView
       ....
       android:text="Hi I am Amiyo,you can see how to ellipse works."
       android:ellipsize = "end"  
   />

この時点では、新しいテキストが入力されたときにデフォルトで自動的に展開するようにTextViewが設定されているため、省略記号はまだ表示されません。何らかの方法でTextViewを制限する必要があります。これを行うには、どちらかにaddを使用TextView a scrollHorizontally, minLines, or maxLinesして省略記号を表示します。

楕円を作成するには:

    at the end: this is how it would...     
   use: android:ellipsize = "end"

そして

 in the middle: this is ...how it would
use: android:ellipsize = "middle"

そして

 at the start: ...this is how it would
use: android:ellipsize = "start"

そして

 to have no ellipse
use: android:ellipsize = "none"

注意してください:

 Do not use android:singeLine = "true", it is deprecated.
android:maxLines = "1" will not display the three dots (...)
android:lines = "1" will not display the three dots (...)

詳細については、こちらをご覧ください

http://developer.android.com/reference/android/widget/TextView.html#attr_android%3aellipsize


10

省略記号は、行の3つの期間であります...

TextViewは、すべてのテキストを表示するために展開できない場合に省略記号を使用します。この属性ellipsizedは、必要に応じて3つのドットの位置を設定します。


5

テキスト:

 This is my first android application and
 I am trying to make a funny game,
 It seems android is really very easy to play.

上記があなたのテキストであり、あなたがellipsizestart属性を使用している場合、それはこのように見えます

This is my first android application and
...t seems android is really very easy to play.

end属性

 This is my first android application and
 I am trying to make a funny game,...

3

以下は、ConstraintLayoutで非推奨を使用せずにellipsizeが機能する方法の例ですandroid:singleLine="true"

<TextView
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:textSize="13sp"
   android:ellipsize="end"
   android:maxLines="2"
   app:layout_constraintEnd_toEndOf="parent"
   app:layout_constraintStart_toStartOf="parent"
   tools:text="long long long long long long text text text" />

1行にあるはずのテキストがある場合は、maxLinesを1に変更してください


この解決策は私の問題を解決してくれてありがとう。キーはのandroid:layout_width="0dp"代わりですandroid:layout_width="wrap_content"。私はを使用しているため、これが当てはまることに注意してくださいConstraintLayout。また、ここで議論stackoverflow.com/a/48149405/2848676
マイケルOsofsky

1

注:次のものをマーキーするには、テキストがコンテナボックスよりも大きい必要があります。

 android:ellipsize="marquee"    

1

このプロパティを設定してテキストを編集します。Elipsizeはエディットテキストを無効にして動作しています

android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:singleLine="true"
android:editable="false"

またはsetKeyListener(null);


上記の設定は、編集可能なプロパティを除くすべてのプロパティとsetKeyListener(null)に言及しています。
Mubarak

0

固定幅の場合はellipsizeを使用すると、テキストが自動的に切り捨てられ、最後に省略記号が表示されます。

layout_widthをwrap_content&match_parentに設定した場合は機能しません。

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.