Android 组件,布局,各种属性总结(一)

基础组件用户布局

View属性

1.background    背景色
2.padding       内间距
3.gravity       对齐方式
4.id            找到组件的一个唯一标记
5.visibility    可见的
6.tag           找到组件的一个唯一标记
7.enable        设置是否可用,如果它的值为:"true"怎可用,若“false”怎整个编辑框都不可用
8.onClick       事件会在对象被点击时发生
9.clickable     可点击的
10.focusable    可聚焦的

在View中常用的监听有:

1.OnClickListener       点击监听
2.OnLongClickListener   长按监听
3.OnTouchListener       触摸监听
监听器是一个存在于View类下的接口,一般以On**listener命名,实现该接口需要复写相应的on****(View v)方法(如onClick(View v));
方法一:在Activity中定义一个内部类继承监听器接口(这里是OnClickListener)。常见的继承方法如下:
class MyListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this,"you have clicked Button2",Toast.LENGTH_SHORT).show();
        }
    }
或者可以用另外一种方式,即new一个该监听器(OnClickListener)的对象,这个方式与上面的直接继承有异曲同工之妙。
    // 或者,这里是创建一个OnClickListener 的对象,与上面的直接复写接口有异曲同工之妙
  private View.OnClickListener MyListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           Toast.makeText(MainActivity.this,"you have clicked Button2",Toast.LENGTH_SHORT).show();
        }
    };

以上两个实现的监听器在onCreate(Bundle savedInstanceState)方法中的调用都是一样的,即使用setOnClickListener()方法。
    bt2.setOnClickListener(new MyListener());
方法二:实现匿名内部类。这种方法适合只希望对监听器进行一次性使用的情况,在该代码块运行完毕之后,该监听器也就不复存在了。
    bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"you have clicked Button1",Toast.LENGTH_SHORT).show();
            }
        });
方法三:利用布局文件中的onClick属性,并在实现文件中实现该方法。注意的是这里的方法名应该和布局文件中onClick属性的方法名相同,该方法必须是public方法
        // 方法三,注意需要public方法
    public void onButtonClick (View view){
        Toast.makeText(MainActivity.this,"you have clicked Button3",Toast.LENGTH_SHORT).show();
    }
}

TextView文本视图

1.text  文本内容
2.textColor 设置文本颜色
3.textSize  设置文本字体码数
4.textStyle 文本字体样式
5.drawable  使用,图片
5.lines     这里代表行数
6.maxLines  最大行数
7.singleLine单行模式
8.maxLength 

遇到过input的问题,当时很无语,平时用的时候没有太关注。现在记下Input的size与maxlength属性的区别:

maxlength="5",则input输入框中只能够输入5个字符

size="5",表示input输入框只显示5个可见的字符,但你可以输入'无数'多字符内容 ,输入框的宽度被固定了
即:size属性规定输入字段的宽度,由于 size 属性是一个可视化的设计属性,我们应使用 CSS 中的width来代替它。 

EditText可以输入文本的组件

hint:暗示,示意
digits:如何限制只能输入指定的字符
textColorHint:设置提示字体颜色

inputType:
可以是text,也就是我们常说的文本框,一般用来输入文本,像用户,邮箱。文章标题之类的
可以是password也就是我们常见的密码输入框。password类型的input里面的内容都是*号或者黑点。任何人是不可见的,只是输入者知道是什么内容。
可以是submit,也就是我们常见的提交按钮。点击后,直接触发指定的链接。
可以是button,也就是常规的按钮。这个按钮仅是个按钮,没有其它特殊用途。除非我们给他绑定的JS的onclick事件,同样可以做很多事。
可以是reset,也就是重置按钮,我们经常看到很多表单中,有个重新输入。这个就是将FORM内所有表单元素重置到初始值。
可以是cancel,也就是取消按钮,用于取消submit的提交
可以是radio,也就是单选按钮。一组按钮中,只能选中一个。
可以是checkbox,复选按钮,可以选择多个。
可以hidden,也就是隐藏域名,里面的值,是看不到的,一般用来传递参数或其它特殊用处。由自己定义
可以是image,使用这个类型后,按钮就是指定的一张图片。
可以是file 这个是用来上传文件的,我们常见有上传头像什么的。用的就是file类型。

imeOptions: 使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:singleline="true"
在android:imeOptions属性中定义了8个EditText,imeOptions分别是: 
1.actionDone 完成 对应 EditorInfo.IME_ACTION_DONE 
2.actionGo 前进 对应 EditorInfo.IME_ACTION_GO 
3.actionNext 下一项 对应 EditorInfo.IME_ACTION_NEXT 
4.actionNone 无动作 对应 EditorInfo.IME_ACTION_NONE 
5.actionPrevious 上一项 对应 EditorInfo.IME_ACTION_PREVIOUS 
6.actionSearch 搜索 对应 EditorInfo.IME_ACTION_SEARCH 
7.actionUnspecified 未指定 对应 EditorInfo.IME_ACTION_UNSPECIFIED 
8.actionSend 发送 对应 EditorInfo.IME_ACTION_SEND

EditText相关监听

1.addTextChangedListener

addTextChangedListener()是TextView的方法,EditText继承自TextView
它那几个方法,分别监测了文本"改变前""改变时""改变中"三种状态
editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
              //这个方法被调用,说明在s字符串中,从start位置开始的count个字符即将被长度为after的新文本所取代。在这个方法里面改变s,会报错。
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
              //这个方法被调用,说明在s字符串中,从start位置开始的count个字符刚刚取代了长度为before的旧文本。在这个方法里面改变s,会报错。
            }

            @Override
            public void afterTextChanged(Editable s) {
              //这个方法被调用,那么说明s字符串的某个地方已经被改变。
            }
        });

2.OnEditorActionListener
需要注意的是 setOnEditorActionListener这个方法,并不是在我们点击EditText的时候触发,也不是在我们对EditText进行编辑时触发,而是在我们编辑完之后点击软键盘上的回车键才会触发。

EditText ET_phone = (EditText) findViewById(R.id.ET_phonenumber);
T_phone.setOnEditorActionListener(new OnEditorActionListener() {  
            @Override  
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {  
                Log.e("点击ET_phone", "没有响应");  
                text.setText("Editing ET_phonenumber");  
                return false;  
            }  
        });  

ImageView 显示图像的组件

src:前景图
background:背景图
src和background的区别:
background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),background是背景,可以同时使用。
此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用android:scaleType控制图片的缩放方式

adjustViewBounds :该属性为真时可以在调整ImageView边界时保持图片的纵横比例(需要与maxHeight 或maxWidth一起使用)
scaleType: 属性用以表示显示图片的方式,共有8种取值:
ScaleType.CENTER:图片大小为原始大小,如果图片大小大于ImageView控件,则截取图片中间部分,若小于,则直接将图片居中显示
ScaleType.CENTER_CROP:将图片等比例缩放,让图像的短边与ImageView的边长度相同,即不能留有空白,缩放后截取中间部分进行显示
ScaleType.CENTER_INSIDE:将图片大小大于ImageView的图片进行等比例缩小,直到整幅图能够居中显示在                                               ImageView中,小于ImageView的图片不变,直接居中显示
ScaleType.FIT_CENTER:ImageView的默认状态,大图等比例缩小,使整幅图能够居中显示在ImageView中,小图等比例放大,同样要整体居中显示在ImageView中
ScaleType.FIT_END:缩放方式同FIT_CENTER,只是将图片显示在右方或下方,而不是居中
ScaleType.FIT_START:缩放方式同FIT_CENTER,只是将图片显示在左方或上方,而不是居中
ScaleType.FIT_XY:将图片非等比例缩放到大小与ImageView相同
ScaleType.MATRIX:是根据一个3x3的矩阵对其中图片进行缩放

ProgressBar进度条,SeekBar拖动条,RatingBar评分条

  • Android常用的进度条有ProgressBar,SeekBar和RatingBar。ProgressBar继承于View类,直接子类有AbsSeekBar和ContentLoadingProgressBar,而SeekBar和RatingBar又是AbsSeekBar的子类,因此ProgressBar是RatingBar,SeekBar的父类。
1、ProgressBar的常用属性

progressBar:水平(Horizontal)和圆,其中圆的又包括Large大,Normal标准,Small小等;
android:max 设置该进度条的最大值
android:progress 设置该进度条的已完成进度值
android:progressDrawable 设置该进度条的轨道对应的Drawable对象(主要用来自定义ProgressBar水平样式))
android:indeterminate 该属性设为true,设置进度条不精确显示进度
android:indeterminateDrawable 设置绘制不显示进度的进度条的Drawable对象(主要用来自定义ProgressBar圆形样式))



2、SeekBar(有一个滑块)

除了继承ProgressBar的常用属性外还有如下常用属性
android:thumb:指定一个Drawable对象,该对象将作为自定义滑块,改变拖动条的滑块外观。
OnSeekBarChangeListener监听器。(监听器决定了它的只要应用场景,让程序能响应拖动条滑块位置的改变,如调节音量的进度条)



3、RatingBar(评分控件,应用场景不言而喻)

除了继承ProgressBar的常用属性外还有如下常用属性
android:rating 设置该星级评分条默认的星级
android:numStars 设置该星级评分条总共有多少个星级
android:stepSize 设置每次最少需要改变多少个星级
android:isIndicator 设置该星级评分条是否允许用户改变(true为不允许修改)
OnRatingBarChangeListener监听器。(为了让程序能响应星级评分的改变)

相关监听OnSeekBarChangedListener

OnSeekBarChangedListener:当进度改变后用于通知客户端的回调函数。包括用户通过手势、方向键或轨迹球触发的改变, 以及编程触发的改变。
public abstract void onProgressChanged (SeekBar seekBar, int progress, boolean fromUser{
    通知进度已经被修改。客户端可以使用fromUser参数区分用户触发的改变还是编程触发的改变参数
    seekBar当前被修改进度的SeekBar
    progress当前的进度值。此值的取值范围为0到max之间。Max为用户通过setMax(int)设置的值,默认为100
    fromUser如果是用户触发的改变则返回True
}
public abstract void onStartTrackingTouch (SeekBar seekBar){
    通知用户已经开始一个触摸拖动手势。客户端可能需要使用这个来禁用seekbar的滑动功能
    参数seekBar 触摸的SeekBar
}
public abstract void onStopTrackingTouch (SeekBar seekBar){
    通知用户触摸手势已经结束。户端可能需要使用这个来启用seekbar的滑动功能
    参数seekBar 触摸的SeekBar
}

ScrollView滚动视图,HorizontalScrollView水平滚动视图

-   ScrollView滚动条不显示 android:scrollbars="none"
    ScrollView滚动条恒显示:android:fadeScrollbars="false"
    设置垂直滚动条的drawable(如颜色):android:scrollbarThumbVertical,如果ScrollView中使用android:scrollbarThumbHorizontal,没有效果。反之亦然
    设置滚动条的大小:android:scrollbarSize="20dp"  ScrollView中,代表宽度
ScrollView和HorizontalScrollView:常见问题
这时IDE会提示我们:“A scroll view can have only one child”。 
在HorizontalScrollView中,只可存在一个直接的子View。因此正确的用法是使用一个如LinearLayout这样的控件,将多个子View放入其中就可以了

猜你喜欢

转载自blog.csdn.net/life_s/article/details/79419188
今日推荐