UI基础控件
基础控件主要是直接或间接的继承了android.view,View类的控件:
- TextView
- Button
- Edittext
- RadioButton
- CheckBox
- ImageView
- PtogessBar
- SeekBar
- RatingBar
-
TextView
Textview是最基本的组件,直接继承了View,也是众多组件的父类,所以此组件是其他一些组件的一个基础。
TextView的属性:
Android:autoLink
设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)
android:autoText 如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。
android:bufferType 指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符, 也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1、这里2。
android:capitalize 设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。 none不转换,sentence每个句子的首字母大写,words每个单词字母大写,characters每个字母都大写
android:cursorVisible 设定光标为显示/隐藏,默认显示。
android:digits 设置允许输入哪些字符。如“1234567890.+-*/% ()”
注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱。
Button
1button(按钮)
mui默认按钮为灰色,另外还提供了蓝色(blue)、绿色(green)、黄色(yellow)、红色(red)、紫色(purple)五种色系的按钮,五种色系对应五种场景,分别为primary、success、warning、danger、royal;使用.mui-btn类即可生成一个默认按钮,继续添加.mui-btn-颜色值或.mui-btn-场景可生成对应色系的按钮,例如:通过.mui-btn-blue或.mui-btn-primary均可生成蓝色按钮;
普通按钮
在button节点上增加.mui-btn类,即可生成默认按钮;若需要其他颜色的按钮,则继续增加对应class即可,比如.mui-btn-blue即可变成蓝色按钮
默认
蓝色
绿色
黄色
红色
紫色
EditText
对于EditText,在很多平台上都有用到,最大的用处就是供用户输入一些信息,所以主要的方法就两个:
setText():设置TextView控件中显示的内容。
getText() 获取TextView控件中显示的内容。
XML属性 相关方法 说明
android:text setText(CharSequence text) 设置文本内容
android:textColor setTextColor(int color) 字体颜色
android:hint setHint(int resid) 内容为空时候显示的文本
android:textColorHint setHintTextColor(int color) 为空时显示的文本的颜色
android:inputType setInputType(int type) 限制输入类型
android:maxLength 限制显示的文本长度,超出部分不显示
android:minLines setMaxLines(int maxlines) 设置文本的最小行数
android:gravity setGravity(int gravity) 设置文本位置,如设置成“center”,文本将居中显示。
android:drawableLeft setCompoundDrawables(Drawable left,Drawable top,Drawable right, Drawable bottom) 在text的左边输出一个drawable
android:drawablePadding 设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。
android:lines setLines(int lines) 设置文本的行数,设置两行就显示两行,即使第二行没有数据。
android:singleLine setSingleLine() true:单行显示 false:可以多行
ImageView
ImageView是图片控件,用于在屏幕上显示一张图片。可以自己定义显示的尺寸、显示颜色等,其支持的图像格式由gif、jpg、png、bmp等。
ImageView类的继承关系如下:
java.lang.Object
android view.View
android.widget.ImageView
实例代码:
public class CircleImageView extends ImageView {
//基本的三个构造函数
public CircleImageView(Context context) {
super(context);
}
public CircleImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CircleImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
//自定义View实现过程中很重要的onDraw绘制图形的方法
@Override
protected void onDraw(Canvas canvas) {
Drawable drawable = getDrawable();
if (drawable == null) {
return;
}
if (getWidth() == 0 || getHeight() == 0) {
return;
}
if (!(drawable instanceof BitmapDrawable)) {
return;
}
Bitmap b = ((BitmapDrawable) drawable).getBitmap();
if (null == b) {
return;
}
Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);
int w = getWidth();
Bitmap roundBitmap = getCroppedBitmap(bitmap, w);
canvas.drawBitmap(roundBitmap, 0, 0, null);
}
public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) {
Bitmap sbmp;
if (bmp.getWidth() != radius || bmp.getHeight() != radius)
sbmp = Bitmap.createScaledBitmap(bmp, radius, radius, false);
else
sbmp = bmp;
Bitmap output = Bitmap.createBitmap(sbmp.getWidth(), sbmp.getHeight(),
Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, sbmp.getWidth(), sbmp.getHeight());
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(Color.parseColor("#BAB399"));
canvas.drawCircle(sbmp.getWidth() / 2 + 0.7f,
sbmp.getHeight() / 2 + 0.7f, sbmp.getWidth() / 2 + 0.1f, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(sbmp, rect, rect, paint);
return output;
}
}
“`
ImageButton
ImageButton是一种带有图片的按钮,其继承关系如下
java.lang.Object
android.view.View
android.widget.ImageView
android.widget.ImageButton
ImageButton与ImageView控件的区别在于,后者不接受单击,但前者的事件处理与Button的事件处理是一样的
RadioButton和RadioGroup
RadioButton一般叫做单选按钮,可用于多选一的应用中。多个RadioButton具有互斥性
RadioButton类的继承关系如下:
java.lang.Object
android.view.View
android.widget.TextView
android.widget.Button
android.widget.CompoumButton
android.widget.RadioButton
RadoiGroup是一个ViewGroup控件,它是一个RadioButton控件的容器,只有发到同一个RadioGroup中的RadioButton控件才可以产生互斥的效果
RadioGroup继承关系如下:
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.LinearLayout
android.widget.RadioGroup
。
CheckBox
CheckBox一般叫做复选框。多选按钮,通常用于多选的应用
CheckBox的继承关系如下:
Android:autoLink
java.lang.Object
android.view.View
android.widget.TextView
android.widget.Button
android.widget.CompoundButton
android.widget.CheckBox
CheckBox默认情况下是未选中状态,如果向修改这个默认值,可以将标签的android.checked属性设置为true
获取CheckBox实例:
A//获取CheckBox实例
CheckBox cb = (CheckBox)this.findViewById(R.id.cb);
//绑定监听器
cb.setOnCheckedChangeListene
(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
Toast.makeText(MyActivity.this,
arg1?"选中了":"取消了选中" , Toast.LENGTH_LONG).show();
}
});
ProgressBar
任务或工作的进度是软件中经常需要展现给用户的信息,这些信息载体总是离不开进度条,在android SDK中提供了一个ProgessBar控件,该控件可以向用户展示当前的进度
ProgressBar控件在默认情况下是圆形的进度条,可通过style属性将圆形进度条设为大中小三种形式
示例代码:
Android:auto
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
style="@android:style/Widget.ProgressBar.Horizontal"(等同于@android:attr)
android:layout_width="match_parent"
android:layout_height="wrap_content" />