上面写了布局,这篇写控件,基本组件就把一些属性列出来就好了,一些复杂组件再写使用方法。
常用属性:
android:autoLink
控制是否自动查找并转换 URL、邮箱地址等链接为可点击链接.默认值为"none",禁止该属性.
android:autoText
如果设置,这表示该 TextView 的文本输入法可以自动更正常见拼写错误.
android:bufferType
决定 getText() 方法返回值的种类.默认值为 "normal".注意,EditText 和 LogTextBox 总是返回 Editable,及时你指定更低的基本也无济于事.
android:capitalize
如果设置该属性,则指定该 TextView 的文本输入法可以自动改变用户输入的字母为大写.
android:cursorVisible
使光标可见(默认)或隐藏.
android:digits
如果设置,则指定该 TextView 使用数字输入法,只接受指定的字符.
android:drawableBottom
在文本下方显示可绘制对象.
android:drawableLeft
在文本左侧显示可绘制对象.
android:drawablePadding
文本和可绘制对象的间距.
android:drawableRight
在文本右侧显示可绘制对象.
android:drawableTop
在文本上方显示可绘制对象.
android:editable
如果设置,则指定该 TextView 有输入法,如果没有特殊指定,其为文本输入状态.
android:editorExtras
指向 XML 资源,为输入法的特殊实现提供附加数据.只是当输入法启动时将资源 放入
EditorInfo.extras 字段.
android:ellipsize
该值为真时,如果文字长度超过视图宽度,文字不会在中途被截断, 而是省略其中一部分.为了将文本作为一个整体显示在一行中, 你可能经常使用横向滚动条或者 singleLine 属性, 现在你也可以使用本属性,它还允许多行.
android:ems
使 TextView 精确匹配指定个数的字符宽度.
android:freezesText
如果设置,则文本视图会保持完整的文本内容,以及象当前光标位置这样的附近信息.
android:gravity
指定当显示的文本比视图小时,横向和纵向的对齐方式.
android:height
精确的设置 TextView 的高度.使用布局参数也可以达到相同效果.
android:hint
当文本为空时显示的提示信息.
android:imeActionId
当输入法连接到文本视图时,提供用于 EditorInfo.actionId 的值.
android:imeActionLabel
当输入法连接到文本视图时,提供用于 EditorInfo.actionLabel 的值.
android:imeOptions
附近特性,可用于启动输入法与编辑器的关联,以提高你应用程序的集成效果.
android:includeFontPadding
为上标和下标留出足够的空间,以取代字体上下标.默认为真.
android:inputMethod
如果设置,即指定 TextView 使用指定的输入法(使用完全修饰类名).
android:inputType
文本域中可放置的数据类型,用于帮助输入法决定如何让用户输入文本.
android:lineSpacingExtra
文本行间距.
android:lineSpacingMultiplier
用倍数指定的行间距.
android:lines
使 TextView 精确匹配指定行数的高度.
android:linksClickable
如果设为假,即使指定的 autoLink 属性正确识别出了链接,点击也不会发生任何动作.
android:marqueeRepeatLimit
字幕动画的重复次数.仅应用于启动字母动画的 TextView.
android:maxEms
使 TextView 的最大宽度为指定个数的字符宽度.
android:maxHeight
设置 TextView 的最大高度.
android:maxLength
设置输入过滤器,限制输入的文本最大长度为指定值.
android:maxLines
使 TextView 的最大高度为指定行数的高度.
android:maxWidth
设置 TextView 的最大宽度.
android:minEms
使 TextView 的最小宽度为指定个数的字符宽度.
android:minHeight
设置 TextView 的最小高度.
android:minLines
使 TextView 的最小高度为指定行数的高度.
android:minWidth
设置 TextView 的最小宽度.
android:numeric
如果设置,指定 TextView 使用数值输入法.默认值为假.
android:password
是否将文本域中的字符显示为代表密码的圆点.
android:phoneNumber
如果设置,则指定 TextView 使用电话号码输入法.默认为假.
android:privateImeOptions
附加的内容类型,用于描述文本视图支持的输入法的私有实现.
android:scrollHorizontally
是否允许文本比视图宽(允许横向滚动).
android:selectAllOnFocus
如果文本可选,当该视图得到焦点时将文本全部选中,而不只将光标移动到开始或结尾处.
android:shadowColor
在文本后面显示指定颜色的阴影.
android:shadowDx
阴影横向偏移量.
android:shadowDy
阴影纵向偏移量.
android:shadowRadius
设置阴影的范围.
android:singleLine
限制文本显示与一行中,用横向滚动来代替多行显示.
android:text
用于显示的文本,一定是字符串值,使用‘\;’来转义字符。比如‘\n’或用‘\uxxxx’代表 UNICODE 字符.
android:textAllCaps
全部使用大写字母来呈现文本.
android:textAppearance
基本的文字颜色、字体、大小和风格.
android:textColor
文本颜色,可能是对其它资源的参照,形式为“@[+][package:]type:name
” 或“?[package:][type:]name
”形式的主题属性.
android:textColorHighlight
选中文本的高亮部分的颜色.
android:textColorHint
提示信息的文字颜色.
android:textColorLink
超链接的文字颜色.
android:textIsSelectable
指示非可编辑文本可以选择.
android:textScaleX
设置文本的横向缩放因子.
android:textSize
文字的大小.推荐以“sp(可缩放像素)”为单位来设置该值(比如 15sp).
android:textStyle
文字风格(粗体、斜体、粗斜体等).
android:typeface
字体名称(楷体、宋体、仿宋、黑体等).
android:width
精确的设置 TextView 的宽度.使用布局参数也可以达到相同效果.
该组件的属性和 TextView 大致相同,最值得注意的是下面这个属性:
|
连接:一般情况下,我们使用 Button 来显示文字按钮,使用 ImageButton 来显示图标。
常用属性:
其让属性也和 TextView 差不多,但是有一个方法:android:onClick
,需要为该属性指定一个唯一标识符,然后在该组件的宿主 Activity 中创建一个方法名为唯一标识符的方法,在这个方法中处理按钮的点击事件。特别的是这个方法一定要是:
CheckBox 也没啥可讲的,同样也是设置 android:onClick
方法,来监控是否选中。
RadioButton 需要注意一点,同一组选项需要包含在同一个 RadioGroup
当中,然后同样也是设置 android:onClick
方法,来监控是否选中。
通过给 ToggleButton 对象设置 setOnCheckedChangeListener
选项来监听开关状态,我们还可以通过调用该对象的 toggle()
方法来设置开关状态,该方法循环调用就是循环开关。
Spinner 是下拉组件,使用这个组件需要两点:设置数据源和响应用户选择。
Spinner 设置数据源有两种方式:
adnroid:entries
属性指定,数据源格式如下,例如:布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:orientation="vertical">
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/city" />
</LinearLayout>
数据源 values/spinner-data:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="city">
<item>北京</item>
<item>上海</item>
<item>广州</item>
<item>深圳</item>
<item>杭州</item>
</string-array>
</resources>
public class MainActivity extends Activity {
private Spinner spinner;
private String[] arr = {"西瓜", "橘子", "李子", "水蜜桃"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, arr);
spinner.setAdapter(adapter);
}
}
要为 Spinner 定义选择事件处理程序,需要实现 AdapterView.OnItemSelectedListener 接口以及相应的 onItemSelected() 回调方法。
public class MainActivity extends Activity {
private Spinner spinner;
private String[] arr = {"西瓜", "橘子", "李子", "水蜜桃"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.city, android.R.layout.simple_spinner_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.d("TTT", "用户选择了 = " + getResources().getStringArray(R.array.city)[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
adapter 在 Android 是一个非常重要的概念,它是连接后端数据和前端显式的一个桥梁,是数据和 UI 之间一个重要的纽带,不光在 Spinner 当中,ListView、GridView 中也扮演着十分重要的角色。
Android 当中 Adapter 一览表:
由图可以看到在Android中与Adapter有关的所有接口、类的完整层级图。在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展。比较常用的有 BaseAdapter,SimpleAdapter,ArrayAdapter,SimpleCursorAdapter 等。
BaseAdapter 是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性;
ArrayAdapter 支持泛型操作,最为简单,只能展示一行字。
SimpleAdapter 有最好的扩充性,可以自定义出各种效果。
SimpleCursorAdapter 可以适用于简单的纯文字型 ListView,它需要 Cursor 的字段和 UI 的 id 对应起来。如需要实现更复杂的UI也可以重写其他方法。可以认为是 SimpleAdapter 对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。
具体使用方法可以看这里:安卓开发Android之Adapter用法总结,这里就不展开讲了。
android:spinnerMode:该属性用来指定下拉框的弹出形式,有两个值可选:
android:prompt:用来指定弹出菜单的 Title,该属性只有在指定 spinnerMode 为 dialog 的时候才起作用。
android:dropDownHorizontalOffset:spinnerMode=”dropdown”时,下拉的项目选择窗口在水平方向相对于Spinner窗口的偏移量。
android:dropDownVerticalOffset:spinnerMode=”dropdown”时,下拉的项目选择窗口在垂直方向相对于Spinner窗口的偏移量。
android:dropDownSelector:用于设定spinnerMode=”dropdown”时列表选择器的显示效果。
android:dropDownWidth:在spinnerMode=”dropdown”时,设定下拉框的宽度。
android:popupBackground:在spinner=”dropdown”时,使用这个属性来设置下拉列表的背景。