椭圆尺寸在android中是什么意思?

我已经在我的布局中添加了EditText,并添加了一个提示,并使其水平居中。

在运行应用程序时,提示是不可见的。我发现我应该使TextViewellipsize值为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之间的区别是什么?

205108 次浏览

你可以找到文档这里<强> < / >强

根据您的需求,您可以根据您的需求进行选择。

to ellipsize是一个新词,意思是用省略来缩短文本,即三个点...或更常见的连接来代替省略的位。

假设文本视图的原始值是aaabbbccc,它在视图内部是合适的

start的输出将是:bccc…

end的输出将是:aaab……

middle的输出将是:aa…cc

marquee的输出将是:aaabbbccc自动从右向左滑动

省略是连续三个句点…

当TextView不能展开显示其所有文本时,它将使用省略号。属性ellipsized在必要时设置三个点的位置。

文本:

 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,...

注意:您的文本必须大于容器框,以便以下内容被选中:

 android:ellipsize="marquee"

将此属性设置为EditTextEllipsize与禁用的EditText一起工作

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

setKeyListener(null);

根据我的经验,只有设置了以下两个属性,省略号才能工作。

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

对于TextView的宽度,wrap_contentmatch_parent都应该是好的。

在API Level 1中添加android:ellipsizeellipsis是连续三个句点。(…)。

在你的。xml中

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

此时,省略号还不会显示,因为TextView被设置为在输入新文本时自动展开默认值。你需要以某种方式限制TextView。为此,您可以使用向TextView添加scrollHorizontallyminLinesmaxLines来显示省略号。

做椭圆:

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

 in the middle:
use: android:ellipsize = "middle"

 at the start:
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 (...)

欲了解更多细节,请访问在这里

下面是一个关于ellipsize如何在ConstraintLayout中不使用已弃用的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" />

记住,如果你有一个应该在单行中的文本,那么将maxLines改为1。

当你有固定宽度时使用ellipsize,然后它会自动截断文本&在结尾显示省略号,

如果你将layout_width设置为wrap_content &match_parent。

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"

如上所述,如果没有足够的文本空间(由于布局大小或设置限制),ellpsize将添加…点到它。

这里有一个例子: 顶部:带有椭圆大小(这里设置为'end') 底部:没有 enter image description here < / p >