android开发之控件简易介绍

来源:互联网 发布:淘宝固定悬浮导航 编辑:程序博客网 时间:2024/06/05 16:46
 CheckBox复选框和RadioButton单选框

如果需要让一组RadioButton呈现互斥的效果 需要将这些RadioButton放在一个Radiogroup中


**TextView和EditText**
 * TextView:用来显示文字的。文本域
 * 常用的属性:
 * textSize:文字的大小
 * textStyle:文字的类型,加粗还是斜体或者正常
 * textAppearance="?android:attr/textAppearanceLarge":调整字体的显示类型
 * maxLength:最大的长度
 * maxLines:最大的行数
 * 
 * EditText:文本的输入框。
 * android:inputType="textPassword":输入的类型
 * hint:提示输入(浅灰色)
 * singleLine:单行输入
 * 
 * EditText继承自TextView,所以TextView的属性都能进行使用。
 * 
 * 
 * 跑马灯的效果:(TextView)
 *  android:singleLine="true"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:marqueeRepeatLimit="marquee_forever"

**EditText文本编辑**
hint:提示内容
inputType:输入类型
ems:默认占用的字符的宽度
例:针对EditText的文本书ude监听。实现文本输入到手机号码结束呈现当前的运营商TextWatcher接口中存在三个方法:文本变化前。文本变化,文本变化后。


      et.addTextChangedListener(new TextWatcher() {
            //文本发生变化的时候执行
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                System.out.println("文本内容发生变化:s:"+s+"---start:"+start+"--before:"+before+"--count:"+count);
            }
            //文本变化之前执行的方法
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                System.out.println("文本内容发生变化之前执行:s:"+s+"---start:"+start+"---after:"+after+"---count:"+count);
            }
            //文本变化之后执行的方法
            @Override
            public void afterTextChanged(Editable s) {
        //    System.out.println("文本内容发生变化之后执行:s:"+s);
                if (s.length()==11) {
                    Toast.makeText(MainActivity.this, "中国联通",Toast.LENGTH_SHORT).show();
                }
            }
        });                        

明密文切换   
  根据edittext选中呈现明文,未选中呈现密文 
解决思路:因为已经出现的文字再去设置inputTyope就不能更改了,需要做的是针对这个edittext 设置转化的实例对象


     给CheckBox设置监听
        box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                //选中查看明文   et为edittext
                if (isChecked) {
                    et.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
                }else{
                    et.setTransformationMethod(PasswordTransformationMethod.getInstance());
                }
                //光标移动到最后
                et.setSelection(et.getText().length());
            }
        });




 imageView和imageButton有什么区别?
一般来说ImageView是用来呈现图片的,ImageButton是用来实现图片点击的    
backGround和src区别: src相当于ImageView的内容显示,呈现是在BackGround的上方。

实例:显示图片点击上一张跳转 知道第一张toask提示并且"上一张"按钮不再可用,同理"下一张"也是

        @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.gobtn:// 点击上一张
            index--;
            if (index == -1) {
                 index =0;
                gobtn.setEnabled(false);
            }
            nextbtn.setEnabled(true);
            iv.setImageResource(imas[index]);
            break;
        case R.id.nextbtn:// 点击下一张
            index++;
            if (index == imas.length - 1) {
                index = imas.length-1;
                nextbtn.setEnabled(false);
            }
            gobtn.setEnabled(true);
            iv.setImageResource(imas[index]);
            break;

        }
    }
    

**ProgressBar**  进度条
用来显示进度的,呈现的样式有圆环和水平2中
水平:style:"?android:attr/progressBarStyleHorizintal"
实例:点击按钮进度变化 textview显示当前进度

    private ProgressBar pbar;
    private int position = 0;//用于控制显示的进度
    btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //进度+5
                position+=5;
                if (position>100) {
                    position = 100;
                }
                //设置显示
                pbar.setProgress(position);
                //设置TexTView的显示
                tv.setText("当前的进度是:"+pbar.getProgress());
            }
        });




**SeekBar**带有拖拽条的进度显示
经常用在播放视频或者音频文件
SeekBar的拖拽监听事件:
bar.setOnSeekBarChangeListener
定义了三个方法:
onStopTrackingTouch:停止拖拽
onStartTrackingTouch:开始拖拽
onProgressChanged: 进度发生变化


        //针对SeekBar实现拖拽的监听
        sbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            //停止拖拽
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                System.out.println("停止拖拽");
            }
            //开始拖拽
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                System.out.println("开始拖拽");
            }
            //进度变化----参数二:当前进度条的进度值   参数三:是否由用户引起的
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                System.out.println("进度变化,进度是:"+progress+",fromUser:"+fromUser);
                tv.setText("当前的进度是:"+progress);
                 position = progress;
            }
        });
1 0
原创粉丝点击