Android 常用知识点总结之UI组件(持续更新)

以下知识点为常用且不熟知的一些知识点

1.TextView

1.1 shapeDrawable知识点
 这个是设置背景颜色的

 这个是设置边框的粗细,以及边框颜色的

 这个是设置边距的

 这个是设置圆角的

 这个是设置渐变色的,可选属性有: startColor:起始颜色 endColor:结束颜色 
centerColor:中间颜色 angle:方向角度,等于0时,从左到右,然后逆时针方向转,当angle = 90度时从下往上 type:设置渐变的类型
1.2 drawableXxx;可以设置四个方向的图片

xml中修改

drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右) 

另外,你也可以使用drawablePadding来设置图片与文字间的间距!

Java中代码中进行修改

第一步:Drawable[] drawable = textview.getCompoundDrawables( );
获得四个不同方向上的图片资源,数组元素依次是:左上右下的图片


第二步:drawable[1].setBounds(100, 0, 200, 200);
接着获得资源后,可以调用setBounds设置左上右下坐标点,比如这里设置了代表的是:
 长是:从离文字最左边开始100dp处到200dp处 宽是:从文字上方0dp处往上延伸200dp!


第三步:textview..setCompoundDrawables(drawable[0], drawable[1], drawable[2], drawable[3]);
为TextView重新设置drawable数组!没有图片可以用null代替哦! 
PS:另外,从上面看出我们也可以直接在Java代码中调用setCompoundDrawables为 TextView设置图片!
1.3autoLink相关知识点
Android 常用知识点总结之UI组件(持续更新)_第1张图片

all就是全部都包含,自动识别协议头~ 在Java代码中可以调用setAutoLinkMask(Linkify.ALL); 这个时候可以不写协议头,autolink会自动识别,但是还要为这个TextView设置: setMovementMethod(LinkMovementMethod.getInstance()); 不然点击了是没效果的!

1.4TextView内容转HTML代码
        //将字符串转换为**CharSequence**接口
        t1.setText(Html.fromHtml(s1));
        t1.setMovementMethod(LinkMovementMethod.getInstance());
1.5跑马灯效果
         android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"

2.EditText

2.1常用属性
  • android:hint //设置hint提示文本

  • android:textColorHint //设置hint提示文字颜色

  • android:textStyle //设置文本字体样式,bold(加粗),italic(倾斜),normal(默认是正常字体).

  • android:singleLine //设置是否单行输入 true(单行输入),false(会自动换行).注意:该属性在使用时提示已过时,建议使用android:maxLines="1"属性替代.

  • android:textAlignment //设置EditText中文本显示的位置,center(居中),inherit(默认,居左边显示),viewStart(居左显示),viewEnd(居右显示),textStart(居左显示),textEnd(居右显示).这里需要注意的是最低支持的API版本是17,前两个可以在API14中使用,而后面使用就会报红线...

  • android:textColorHighlight //设置被选中字体的颜色.默认为 Theme 主题中的 “colorAccent”的颜色.

  • textCursorDrawable //设置被光标的颜色.默认为 Theme 主题中的 “colorAccent”的颜色.

  • android:textScaleX //设置文本的水平缩放系数.

  • android:typeface //设置hint提示文本的字体.normal(默认),monospace,sans,serif.这里就不解释了,大家试一下就能看出效果.

  • android:background //设置EditText背景."@null"设置背景为透明.当我们设置背景后,EditText的那条线就会消失.

  • android:textAppearance //设置文本的颜色,字体,大小和样式.

  • android:digits //设置只接收指定的文本内容.

  • android:editable //设置EditText是否可以编辑.当你设置为true,会提示你该EditText已经是可编辑的.设置为false时会提示使用inputType替代.

  • android:inputType //设置文本的类型,用于帮助输入法显示合适的键盘类型.

  • android:maxLength //设置EditText最多接受的文本的个数.

  • android:lines //设置EditText显示的行数,设置两行就显示两行,即使第二行没有数据.

  • android:lineSpacingExtra //设置行间距.

  • android:lineSpacingMultiplier //设置行间距的倍数. 如设置成1.5倍.

  • android:imeOptions //设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号.下面会详细说明.

2.inputType用法

android:inputType=none:普通字符。

android:inputType=text:普通字符。

android:inputType=textCapCharacters:字母大写。

android:inputType=textCapWords:首字母大写。

android:inputType=textCapSentences:仅第一个字母大写。

android:inputType=textAutoCorrect:自动完成。

android:inputType=textAutoComplete:自动完成。

android:inputType=textMultiLine:多行输入。

android:inputType=textImeMultiLine:输入法多行(如果支持)。

android:inputType=textNoSuggestions:不提示。

android:inputType=textUri:网址。

android:inputType=textEmailAddress:电子邮件地址。

android:inputType=textEmailSubject:邮件主题。

android:inputType=textShortMessage:短讯。

android:inputType=textLongMessage:长信息。

android:inputType=textPersonName:人名。

android:inputType=textPostalAddress:地址。

android:inputType=textPassword:密码。

android:inputType=textVisiblePassword:可见密码。

android:inputType=textWebEditText:作为网页表单的文本。

android:inputType=textFilter:文本筛选过滤。

android:inputType=textPhonetic:拼音输入。

android:inputType=number:数字。

android:inputType=numberSigned:带符号数字格式。

android:inputType=numberDecimal:带小数点的浮点格式。

android:inputType=phone:拨号键盘。

android:inputType=datetime:时间日期。

android:inputType=date:日期键盘。

android:inputType=time:时间键盘。

3.ImageView

3.1 JAVA中的用法
前景(对应XML的src属性):setImageDrawable( );
背景(对应XML的background属性):setBackgroundDrawable( );
3.2 adjustViewBounds设置缩放是否保存原图长宽比
单独设置不起作用,需要配合maxWidth和maxHeight属性一起使用!
android:adjustViewBounds="true"
android:maxHeight:设置ImageView的最大高度
android:maxWidth:设置ImageView的最大宽度
3.3 scaleType设置缩放类型
fitXY:对图像的横向与纵向进行独立缩放,使得该图片完全适应ImageView,
但是图片的横纵比可能会发生改变

fitStart:保持纵横比缩放图片,知道较长的边与Image的编程相等,
缩放完成后将图片放在ImageView的左上角

fitCenter:同上,缩放后放于中间;

fitEnd:同上,缩放后放于右下角;

center:保持原图的大小,显示在ImageView的中心。
当原图的size大于ImageView的size,超过部分裁剪处理。

centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,可能会出现图片的显示不完全

centerInside:保持横纵比缩放图片,直到ImageView能够完全地显示图片

matrix['meɪtrɪks]:默认值,不改变原图的大小,从ImageView的左上角开始绘制原图, 
原图超过ImageView的部分作裁剪处理

4.Button

1)ToggleButton(开关按钮)

可供我们设置的属性:

android:disabledAlpha:设置按钮在禁用时的透明度
android:textOff:按钮没有被选中时显示的文字
android:textOn:按钮被选中时显示的文字 另外,除了这个我们还可以自己写个selector,然后设置下Background属性即可~
2) Switch(开关)

可供我们设置的属性:

android:showText:设置on/off的时候是否显示文字,boolean
android:splitTrack:是否设置一个间隙,让滑块与底部图片分隔,boolean
android:switchMinWidth:设置开关的最小宽度
android:switchPadding:设置滑块内文字的间隔
android:switchTextAppearance:设置开关的文字外观,暂时没发现有什么用...
android:textOff:按钮没有被选中时显示的文字
android:textOn:按钮被选中时显示的文字
android:textStyle:文字风格,粗体,斜体写划线那些
android:track:底部的图片
android:thumb:滑块的图片
android:typeface:设置字体,默认支持这三种:sans, serif, monospace;除此以外还可以使用 其他字体文件(*.ttf),首先要将字体文件保存在assets/fonts/目录下,不过需要在Java代码中设置: Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf"); textView.setTypeface(typeFace);

5.SeekBar

好吧,基本用法其实很简单,常用的属性无非就下面这几个常用的属性,Java代码里只要setXxx即可:

android:max="100" //滑动条的最大值
android:progress="60" //滑动条的当前值
android:secondaryProgress="70" //二级滑动条的进度
android:thumb = "@mipmap/sb_icon" //滑块的drawable

接着要说下SeekBar的事件了,SeekBar.OnSeekBarChangeListener 我们只需重写三个对应的方法:

onProgressChanged:进度发生改变时会触发
onStartTrackingTouch:按住SeekBar时会触发
onStopTrackingTouch:放开SeekBar时触发

6.ProgressBar

常用属性详解:

  • android:max:进度条的最大值
  • android:progress:进度条已完成进度值
  • android:progressDrawable:设置轨道对应的Drawable对象
  • android:indeterminate:如果设置成true,则进度条不精确显示进度
  • android:indeterminateDrawable:设置不显示进度的进度条的Drawable对象
  • android:indeterminateDuration:设置不精确显示进度的持续时间
  • android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置!
对应的再Java中我们可调用下述方法:
  • getMax():返回这个进度条的范围的上限
  • getProgress():返回进度
  • getSecondaryProgress():返回次要进度
  • incrementProgressBy(int diff):指定增加的进度
  • isIndeterminate():指示进度条是否在不确定模式下
  • setIndeterminate(boolean indeterminate):设置不确定模式下

7.ScrollView(滚动条)

scrollView.fullScroll(ScrollView.**FOCUS_DOWN**);滚动到底部
scrollView.fullScroll(ScrollView.**FOCUS_UP**);滚动到顶部

垂直方向滑块:android:scrollbarThumbVertical
水平方向滑块:android:scrollbarThumbHorizontal

滚动速度
@Override
public void fling(int velocityY) {
    super.fling(velocityY / 2);    //速度变为原来的一半
}

8.DatePicker(日期选择器)

可供我们使用的属性如下:
android:calendarTextColor : 日历列表的文本的颜色
android:calendarViewShown:是否显示日历视图
android:datePickerMode:组件外观,可选值:spinner,calendar 前者效果如下,默认效果是后者
android:dayOfWeekBackground:顶部星期几的背景颜色
android:dayOfWeekTextAppearance:顶部星期几的文字颜色
android:endYear:去年(内容)比如2010
android:firstDayOfWeek:设置日历列表以星期几开头
android:headerBackground:整个头部的背景颜色
android:headerDayOfMonthTextAppearance:头部日期字体的颜色
android:headerMonthTextAppearance:头部月份的字体颜色
android:headerYearTextAppearance:头部年的字体颜色
android:maxDate:最大日期显示在这个日历视图mm / dd / yyyy格式
android:minDate:最小日期显示在这个日历视图mm / dd / yyyy格式
android:spinnersShown:是否显示spinner
android:startYear:设置第一年(内容),比如19940年
android:yearListItemTextAppearance:列表的文本出现在列表中。
android:yearListSelectorColor:年列表选择的颜色

9.CalendarView(日历视图)

android:firstDayOfWeek:设置一个星期的第一天
android:maxDate :最大的日期显示在这个日历视图mm / dd / yyyy格式
android:minDate:最小的日期显示在这个日历视图mm / dd / yyyy格式
android:weekDayTextAppearance:工作日的文本出现在日历标题缩写

10.Spinner(列表选项框)

android:dropDownHorizontalOffset:设置列表框的水平偏移距离
android:dropDownVerticalOffset:设置列表框的水平竖直距离
android:dropDownSelector:列表框被选中时的背景
android:dropDownWidth:设置下拉列表框的宽度
android:gravity:设置里面组件的对其方式
android:popupBackground:设置列表框的背景
android:prompt:设置对话框模式的列表框的提示信息(标题),只能够引用string.xml 中的资源id,而不能直接写字符串
android:spinnerMode:列表框的模式,有两个可选值: dialog:对话框风格的窗口 dropdown:下拉菜单风格的窗口(默认)
可选属性:android:entries:使用数组资源设置下拉列表框的列表项目

11AutoCompleteTextView

android:completionHint:设置下拉菜单中的提示标题
android:completionHintView:定义提示视图中显示下拉菜单
android:completionThreshold:指定用户至少输入多少个字符才会显示提示
android:dropDownAnchor:设置下拉菜单的定位"锚点"组件,如果没有指定改属性, 将使用该TextView作为定位"锚点"组件
android:dropDownHeight:设置下拉菜单的高度
android:dropDownWidth:设置下拉菜单的宽度
android:dropDownHorizontalOffset:指定下拉菜单与文本之间的水平间距
android:dropDownVerticalOffset:指定下拉菜单与文本之间的竖直间距
android:dropDownSelector:设置下拉菜单点击效果
android:popupBackground:设置下拉菜单的背景
MultiAutoCompleteTextView(多提示项的自动完成文本框) 和这个AutoCompleteTextView作用差不多

你可能感兴趣的:(Android 常用知识点总结之UI组件(持续更新))