2020.8.10
一.TextView
常用属性
属性名 | 说明 | 使用展示 |
---|---|---|
textColor | 设置文字颜色 | android:textColor="@color/colorPrimaryDark" |
textSize | 设置文字大小 | android:textSize="20sp" |
textAlignment | 设置文本对齐方式 | android:textAlignment="center" |
textScaleX | 横向拉伸文字 | android:textScaleX="2" |
shadowColor | 设置阴影色 | android:shadowColor="@color/colorAccent" |
shadowDx | 设置横向偏移量 | android:shadowDx="10" |
shadowDy | 设置纵向偏移量 | android:shadowDy="10" |
shadowRadius | 设置阴影半径 | android:shadowRadius="50" |
drawableTop | 给TextView的顶部设置图片 | android:drawableTop="@drawable/wiwi" |
autoLink | 自动识别号码、网址等 | android:autoLink="web" |
ellipsize | 一行显示不完全的情况下,设置省略号的位置 | android:ellipsize="end" |
marqueeRepeatLimit | 跑马灯重复播放次数,需要设置ellipsize | android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" |
跑马灯的启动还需要在代码中进行启动
textview.isSelected=true
二.ImageView
对于ImageView小编很想强调,其添加图片的两种方式
- android:background="@drawable/pic"
这种方式会自动拉伸图片,直到全部填满控件 - android:src="@drawable/pic"
该方式等比例拉伸图片,只要宽或高填满即可
特别注意:以上两种方式还可同时使用,第一种方式是背景,第二种方式是前景,前景会覆盖背景,可能会覆盖不完全,并且使用src的方式还可单独设置拉伸方式
下面是src添加图片方式的拉伸类型
类型名 | 拉伸方式 |
---|---|
fitStart | 按比例缩放,若没填满,则显示在顶部/左边 |
fitEnd | 按比例缩放,若没填满,则显示在底部/右边 |
fitCenter | 按比例缩放,显示在中心 |
fitXY | 自由缩放,知道高度和宽度都填满 |
centerInside | 等比例缩放,直到整个图片都显示在控件中 |
centerCrop | 等比例缩放,直到填满控件 |
center | 不缩放,原图(原大小)居中显示 |
- 使用drawable资源实现卷帘效果
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/pic"
设置展开方向
android:clipOrientation="horizontal"
设置从哪个方位开始
android:gravity="left"
/>
然后将ImageView的src设置为clip.xml
另外启动该效果需要通过代码实现,其本质就是它的属性level值不断改变
override fun onResume() {
super.onResume()
val clipDrawable=imageView2.drawable as ClipDrawable
val timer=Timer()
timer.schedule(object :TimerTask(){
override fun run() {
clipDrawable.level+=100
if (clipDrawable.level==10000){
timer.cancel()
}
}
},0,100)
}
clip效果展示.gif
对图片操作时遇到的bug
三.EditText
常用的几个属性
属性名 | 说明 | 使用展示 |
---|---|---|
inputType | 设置输入的类型 对应各种输入框 |
android:inputType="textPassword" |
cursorVisible | 是否显示光标 | android:cursorVisible="true" |
hint | 在没有任何输入的情况下 提示用户输入信息 |
android:hint="请输入密码" |
letterSpacing | 设置输入字符的间距 | android:letterSpacing="0.3" |
paddingStart | 设置光标到前端的距离 | android:paddingStart="10dp" |
如果需要多行输入的话,需要如下设置
android:inputType="textMultiLine"
EditText最重要的是监听事件
text.addTextChangedListener(object :TextWatcher{
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
override fun afterTextChanged(s: Editable?) {
}
})
- beforeTextChanged
s:改变前的字符序列
start:改变前的字符数量
count:删除一个字符,其值为1,否则为0
after:增加一个字符,其值为1,否则为0 - onTextChanged
s:当前输入框中的所有字符组成的序列
start:如果当前正在删除字符,那么start的值为当前输入框的字符数量
如果正在增加字符,则为当前输入框的字符数量-1
before:若删除字符,其值为1,否则为0
count:若增加字符,其值为1,否则为0 - afterTextChanged
s:改变后的输入框字符组成的序列
当我们输入完毕或点击空白处时想隐藏键盘,下面代码便可实现
val inputMethodManager=getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(mPwd.windowToken,InputMethodManager.HIDE_NOT_ALWAYS)
四.Switch开关
属性名 | 说明 | 使用展示 |
---|---|---|
thumbTint | 设置开关颜色 | android:thumbTint="#B79740" |
trackTint | 设置开关另一半的颜色 | android:trackTint="#7BCDA8" |
事件监听
switch2.setOnClickListener {
val s=(it as Switch)
if (s.isChecked){
//打开开关
}else{
//关闭开关
}
}
五.checkBox
事件监听
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked){
checkBox.text="选中了"
}else{
checkBox.text="没选择"
}
}
由于Button很普通,且用法单一,基本属性在View篇中已做详细讲解,下面介绍drawable资源在button上的两种用法
六.使用selector设置按钮点击状态对应的颜色
当按钮不可点击的时候,我们希望它的颜色暗淡一点,而可以点击时,便明亮一点,这样视觉效果会好很多
创建一个drawable资源文件
特别注意:设置两种状态颜色时,一定要是特殊情况在前,常规在后,因为它是从上向下进行匹配的,显然不可点击状态是特殊的,应该放在前面
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@color/colorGray"/>
<item android:state_enabled="true" android:drawable="@color/colorAccent"/>
</selector>
创建好xml文件后,还需将按钮的background设置为新建的xml资源
七.设置按钮文字颜色随着是否可点击进行切换
对应于上文的背景变换,按钮的文字颜色同样可以进行切换,步骤同上,创建xml资源文件,然后将textColor设置为xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="#fff"/>
<item android:state_enabled="true" android:color="#000"/>
</selector>
高度注意:六、七两种方式中,给按钮设置背景颜色选择xml中,颜色的设置只能使用drawable,而按钮文字颜色选择xml中,颜色的设置只能使用color的方式,否则会报错或者文字颜色一直为紫色,设置无效
show.gif