drawablepadding什么作用

drawablepadding什么作用,第1张

在TextView的上下左右四个方向可以设置一个图片,这是一个很常用的布局方式,但是使用的时候总是碰到很多的意外情况。比如android:drawablePadding不起作用。

百度,google了一下,总是能看见这么几个答案,但是那些都不足以解决我的问题。在具体的实战开发中,总能碰见很多很狗血的问题。

android:drawableBottom

在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

android:drawableLeft

在text的左边输出一个drawable,如图片。

android:drawablePadding

设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。

android:drawableRight

在text的右边输出一个drawable,如图片。

android:drawableTop

在text的正上方输出一个drawable,如图片。

在 stackoverflow 上找到一个老外的说法:

android:drawablePadding will only create a padding gap between the text and the drawable if the button is small enough to squish the 2 together. If your button is wider than the combined width (for drawableLeft/drawableRight) or height (for drawableTop/drawableBottom) then drawablePadding doesn't do anything.

我认为是这样的,当你的 textview 设置 match_parent 的时候,是很可能出现这个问题的。这个时候 android:drawablePadding 是无效的,为啥无效不清楚,有时间看看源代码。

解决的办法就是想其他的办法了。肯定不是使用 android:drawablePadding 的方法来实现你要的了。

TextView的drawable属性

TextView有一些属性可以在Text的四周设置一个drawable对象,图片,shape等合法的drawable都可以用。

drawableStart API 14才有

drawableLeft

drawableTop

drawableBottom

drawableRight

drawableEnd API 14才有

drawablePadding 用以设置drawable与text之间的空间

它们的含义 就像其名字所暗示的那样,left/top/right/bottom就是在文字的上下左右放置drawable。而drawableStart和drawableEnd则有特殊的意义,虽然它们是API 14加上去的,但是要在API 17后才能真正的生效,它们的作用是当语言方向发生变化时,会换边,LTR语言drawableStart在左边,而drawableEnd在右边;但对于RTL语言来说就会反过来drawableStart在右,drawableEnd在左。可以看 这个解释 。

01  简介

这篇文章主要是学习EditText输入框的设置

android:hint输入提升

android:textColorHint输入提示的文字的颜色

android:drawableXxxx在输入框的指定方位添加图片

android:drawablePadding设置图片与输入内容的间距

android:paddingXxxx设置内容和边框的间距

android:background背景色

02   *** 作

这是在输入类型InputType里面设置的

首先添加EditText

这个inputType的类型自己可以去摸索

里面的phone就是这个效果

03  图标以及密码框的设置

先再添加一个EditText

图标的设置,参考上一篇文章里面在Drawable里面添加的图片选择器,之后加上

android:drawableLeft="@drawable/ic_baseline_account_box_24"

drawableLeft这个是将图标设置在输入框的左边,Drawablepadding可以调图标与输入内容的间距

04  如何获取输入框里面的内容

要获取用户名的话就得再添加一个button

并且在里面添加一个id

同时在要获取 的那个EditText里面添加一个id 

在点击事件里面添加一个读取editText内容方法

btn.setOnClickListener(newView.OnClickListener(){            @OverridepublicvoidonClick(View v) {                String text1 = et1.getText().toString()Log.e("chuangzhangkeji","YONGHUMING:"+text1)               String text2 = et2.getText().toString()Log.e("chuangzhangkeji","MIMA:"+text2)           }

 Log.e()这个是调用打印的方法把获取到的的信息打印出来

et1.getText().toString()是获取输入的数据并将其转化为字符串

05  测试

     点击登入之后就会在logcat里面出现

船长科技

电子人,极客开发者,电子信息工程在读,介绍科技类,科幻类,以及分享一些互联网学习经验公众号  

欢迎关注“船长科技”

船长和你一起走进科技

探索生活中的科技

保持一颗好奇心


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7897645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存