椭圆在android中是啥意思?
Posted
技术标签:
【中文标题】椭圆在android中是啥意思?【英文标题】:What does ellipsize mean in android?椭圆在android中是什么意思? 【发布时间】:2012-10-30 02:56:27 【问题描述】:我在布局中添加了EditText
,并添加了提示,并使其水平居中。
运行应用程序时,提示是不可见的。我发现我应该将TextView
的ellipsize
值设为start
:
<EditText
android:id="@+id/number1EditText"
android:layout_
android:layout_
android:ellipsize="start"
android:ems="10"
android:gravity="center_horizontal"
android:hint="@string/hint1" />
在 Android 文档中,我读到:
如果设置,则会导致长于视图宽度的单词 椭圆形而不是中间折断。
问题是在字典中找不到ellipsize
。谁能向我解释ellipsize
属性可以获得哪些好处?而start
、end
、middle
又有什么区别?
【问题讨论】:
请参考我的更新答案。 顺便说一句:“椭圆”这个词是虚构的。它被称为“名词动词化”,是形成计算机术语的常用方法。名词是“ellipse”,我假设你知道,它通过添加“-ize”结尾变成动词,意思是“to make into”,所以你可以推断“ellipsize”是“to add an ellipse to东西”。 旧的拼写错误,从未更正。该术语实际上应该是“省略号”。椭圆是围绕两个焦点的平面上的曲线,使得从其中一个焦点到曲线上任意点的直线。省略号是三个点。 ellipseSize 的文档仍然缺少描述。 仍然对我来说将字数减半。我需要文字保持在一块。该死的 【参考方案1】:您可以找到文档here。
根据您的要求,您可以根据选项进行尝试。
to ellipsize,一个新词,意思是使用ellipsis,即三个点...
或更常见的连字…
来缩短文本,以代替省略的位。
说原始值 pf 文本视图是 aaabbbccc 并且它在视图中的拟合
start
的输出将是:...bccc
end
的输出将是:aaab...
middle
的输出将是:aa...cc
marquee
的输出将是:aaabbbccc 自动从右向左滑动
【讨论】:
谢谢。但我已经读过了。它在我搜索它的含义时使用了“椭圆形”这个词。这个词不能用在它的定义中!!请进一步解释?【参考方案2】:根据我的经验,Ellipsis 仅在设置了以下两个属性时才有效。
android:ellipsize="end"
android:singleLine="true"
TextView
、wrap_content
或 match_parent
的宽度应该都不错。
【讨论】:
实际上android:singleLine
自 API 级别 3 以来已被弃用,因此请改用 android:maxLines
。请注意: > 如果同时提供了 singleLine 和 inputType,则 inputType 标志将覆盖 singleLine 的值。查看R.attr.html#singleLine的文档
@AlbertoGaona 我注意到如果 android:ellipsize="start" 和 android:maxLines="2" (或更多)它不起作用。虽然文字太长,但我在开头没有看到任何点。
这是正确答案。它对我有用。 maxLines="1"
没有 singleLine="true"
对我不起作用。【参考方案3】:
android:ellipsize
在 API 级别 1 中添加。ellipsis
是连续三个句点。 (...) .
在您的 .xml 中
<TextView
....
android:text="Hi I am Amiyo, you can see how to ellipse works."
android:ellipsize = "end" />
此时,省略号将不会显示,因为 TextView
设置为在输入新文本时默认自动扩展。您需要以某种方式限制TextView
。这样做,您可以使用添加到您的TextView
和scrollHorizontally
、minLines
或maxLines
来显示省略号。
制作椭圆:
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 (...)
更多详情可以访问here
【讨论】:
【参考方案4】:ellipsis 是连续三个句点...
当 TextView 无法展开以显示其所有文本时,它将使用省略号。如果需要,属性ellipsized
设置三个点的位置。
【讨论】:
【参考方案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.
假设上面是您的文本,如果您使用ellipsize
的start
属性,它将看起来像这样
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,...
【讨论】:
【参考方案6】:下面是一个示例,说明 ellipsize
如何在不使用已弃用的 android:singleLine="true"
的情况下在 ConstraintLayout
中工作:
<TextView
android:layout_
android:layout_
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。
【讨论】:
谢谢这个解决方案解决了我的问题。密钥是android:layout_width="0dp"
而不是android:layout_width="wrap_content"
。请注意,这是适用的,因为我使用的是ConstraintLayout
。也在这里讨论***.com/a/48149405/2848676【参考方案7】:
注意:您的文本必须大于容器框才能使以下内容选中:
android:ellipsize="marquee"
【讨论】:
【参考方案8】:将此属性设置为EditText
。 Ellipsize
正在使用禁用 EditText
android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:singleLine="true"
android:editable="false"
或setKeyListener(null);
【讨论】:
设置上面提到的所有属性和setKeyListener(null)除了可编辑属性。【参考方案9】:当你有固定宽度时使用 ellipsize,然后它会自动截断文本并在末尾显示省略号,
如果你将 layout_width 设置为 wrap_content & match_parent 将不起作用。
android:
android:ellipsize="end"
android:singleLine="true"
【讨论】:
以上是关于椭圆在android中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章