如何创建圆角的EditText?
如何创建一个具有圆角而不是默认矩形角的 EditText
?
How to create an EditText
that has rounded corners instead of the default rectangular-shaped corners?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
有一种比 CommonsWare 编写的方法更简单的方法。只需创建一个可绘制资源来指定
EditText
的绘制方式:然后,只需在布局中引用此可绘制资源:
您将得到类似以下内容的内容:
编辑
根据 Mark 的评论,我想添加为
EditText
创建不同状态的方式:这些是状态:
并且..现在,
EditText
应该如下所示:There is an easier way than the one written by CommonsWare. Just create a drawable resource that specifies the way the
EditText
will be drawn:Then, just reference this drawable in your layout:
You will get something like:
Edit
Based on Mark's comment, I want to add the way you can create different states for your
EditText
:These are the states:
And... now, the
EditText
should look like:以下是仅在一个 XML 文件中的相同解决方案(带有一些额外的奖励代码):
然后只需将背景属性设置为 edittext_rounded_corners.xml 文件:
Here is the same solution (with some extra bonus code) in just one XML file:
You then just set the background attribute to edittext_rounded_corners.xml file:
试试这个,
在您的 Drawable 中创建
rounded_edittext.xml
文件为 xml 文件中的
EditText
应用背景<前><代码><编辑文本
android:id="@+id/edit_expiry_date"
安卓:layout_width =“match_parent”
安卓:layout_height =“wrap_content”
机器人:填充=“10dip”
android:background="@drawable/rounded_edittext"
android:hint="@string/shop_name"
android:inputType="text"/>
您将得到如下输出
Try this one,
Create
rounded_edittext.xml
file in your DrawableApply background for your
EditText
in xml fileYou will get output like this
感谢诺费尔特的回答。我稍微改变了它的渐变以获得更好的内阴影效果。
在浅色背景布局中看起来很棒。
Thanks for Norfeldt's answer. I slightly changed its gradient for a better inner shadow effect.
Looks great in a light backgrounded layout..
按照我的想法,它已经有圆角了。
如果您希望它们更圆润,则需要:
EditText
背景的所有九块 PNG 图像(在您的 SDK 中找到)StateListDrawable
资源,将这些EditText
背景组合成一个Drawable
,并修改它以指向更全面的九个补丁 PNGStateListDrawable
作为EditText
小部件的背景By my way of thinking, it already has rounded corners.
In case you want them more rounded, you will need to:
EditText
background (found in your SDK)StateListDrawable
resource that combines thoseEditText
backgrounds into a singleDrawable
, and modify it to point to your more-rounded nine-patch PNG filesStateListDrawable
as the background for yourEditText
widget只是为了添加其他答案,我发现实现圆角的最简单的解决方案是将以下内容设置为 Edittext 的背景。
Just to add to the other answers, I found that the simplest solution to achieve the rounded corners was to set the following as a background to your Edittext.
通过材质组件库,您可以使用
MaterialShapeDrawable
到 绘制自定义形状。使用
EditText
,您可以执行以下操作:然后创建
MaterialShapeDrawable
:它需要版本1.1。 0 库。
With the Material Components Library you can use the
MaterialShapeDrawable
to draw custom shapes.With a
EditText
you can do:Then create a
MaterialShapeDrawable
:It requires the version 1.1.0 of the library.
如果您只想让拐角弯曲而不是整个末端,请使用下面的代码。
它只会弯曲
EditText
的四个角度。If you want only corner should curve not whole end, then use below code.
It will only curve the four angle of
EditText
.