Android基础之控件

一  TextView    父类 : View
    >概念:文本控件 :文本内容的显示   默认配置不可编辑  子类EditText可以编辑
    

    >属性:

    android:text="你好,世界!"        文本内容
        android:textSize="20sp"   文本字体的大小
        android:textColor="#f00"  文本颜色
        android:textStyle="bold|italic"   文本字体样式   
        bold:加粗
        italic:斜体
        android:maxLines="2":文本最多展示的行数

       android:singleLine="true"    文本过多单行展示文本内容
        android:ellipsize="none"   省略号的位置
        none:  没有
        start:开始位置
        middle:中间位置
        end:结尾位置
        
        marquee:跑马灯

        跑马灯必要条件:
        android:singleLine="true"    单行展示
        android:ellipsize="marquee"  设置成跑马灯样式
        android:focusableInTouchMode="true"  设置获取焦点模式
        android:focusable="true"   设置获取焦点
        android:marqueeRepeatLimit="marquee_forever"   跑马灯无限循环

    android:autoLink="phone"自动链接  (根据内容不同  打开相应的程序)
          phone  电话
          web    网址
          map    地图
          email  邮箱
          all    以上所有


       设置阴影效果
        android:shadowColor="#0f0"   阴影的颜色
        android:shadowDx="10.0"     阴影水平偏移量
        android:shadowDy="8.0"      阴影垂直偏移量
        android:shadowRadius="2"    阴影模糊程度   (值越大 越模糊)

二  EditText   文本编辑框  父类: TextView
    >概念:文本编辑框  可以进行文本编辑

        android:textColor="#00f"    文本颜色
            android:hint="请输入用户名称"  提示
            android:textColorHint="#f00"  提示的颜色
            android:textCursorDrawable="@null"  光标颜色
            android:digits="abcdefg"   文字的限定
            android:inputType="number" 键盘弹出样式 ,改变文字内容
            number:数字
            date:日期
            textPassword:改变密码样式
            
           <requestFocus/>获取焦点

       在逻辑代码中获取文本信息:
           >//获取输入框的内容
        //trim()去除前后空格
            String name = etName.getText().toString().trim();


三  Button    按钮   父类: TextView
    >概念:可以被按,点击 并且执行一个动作
    >属性:
        在按钮内部的上下左右设置图片:
            android:drawableTop="@drawable/ic_launcher"
            android:drawableBottom="@android:drawable/editbox_background_normal"
            android:drawableLeft="@android:drawable/ic_dialog_alert"
            android:drawableRight="@android:drawable/ic_menu_call"
            
              android:background="@null"去掉背景颜色
              android:background="@android:color/transparent" 设置背景颜色为透明
    >监听:控件数量少  用一和二    控件数量多  用三和四
        第一种实现:使用的是成员内部类  
        第二种实现方式:匿名内部类
        第三种实现方式 :类实现OnclickListner
        第四种实现方法:      * 布局文件中xml中添加点击事件 Onclick属性
                     * 1,方法必须是public
                     * 2,返回值必须是void
                     * 3,必须和xml中Onclick里属性名一致
                     * 4,必须有View参数

四  ImageView   父类 : view

    >概念:展示图片的控件  

    >属性:
     <!--  android:adjustViewBounds="true" 自适应  只有一个adjustViewBounds没有作用,需要和maxWidth,maxHeight一起使用-->
     <!-- 图片显示方式   android:scaleType="matrix"  保持原图片比例不变  从左上角开始截取  截取和 控件大小一至-->
     <!--  android:scaleType="fitXY"不按比例进行缩放 将图片完整的展示到ImageVIew中  会变形  -->
    <!-- android:scaleType="fitStart"  按比例进行缩放  显示在控件顶部  完整的显示图片 -->
    <!-- android:scaleType="fitCenter"  按比例进行缩放  显示在控件中间  完整的显示图片 -->
    <!-- android:scaleType="fitEnd"  按比例进行缩放  显示在控件底部   完整的显示图片 -->
    <!-- 不按比较进行缩放  中间位置截取相应的尺寸 -->
    <!-- 按比例扩大图片  居中展示  超出部分不展示 -->
    <!-- 按比例缩小图片  居中展示   完全显示图片 -->


    


五  CheckBox  复选框
    >概念:可以从一个集合选项中选择一个或者多个选项
    >属性:checked   选择状态
    >使用:  
        >方式一:使用onclickListner 监听事件(点击事件)
        >方式二:使用OnCheckedChangeListener (CompleButton)  状态改变的监听  

        如果有全选的:全选的按钮的监听必须用onclickListner 监听事件

    
六  RadioButton  单选按钮

       >概念:从多个互斥选项中选择一个  如果是选项全部展开  RadioButton  不是展开的Spinner(下拉列表)

    >属性: android:checked="true"

    >使用方法:
         使用RadioButton要用RadioGroup进行分组 RadioGroup是LinearLayout的子类  可以控制方向
        >方式一:使用onclickListner 监听事件(点击事件)
        >方式二:****使用OnCheckedChangeListener (RadioGroup)  状态改变的监听 *****

七, ProgressBar   进度条
    >
     style="?android:attr/progressBarStyleSmall" 样式
       
        android:progress="40"   第一进度
        android:secondaryProgress="50"  第二进度


八,  SeekBar  音频播放拖拽进度条  
    >
       
        android:progress="40"   第一进度
        android:secondaryProgress="50"  第二进度
    >使用: setOnSeekBarChangeListener

九,  ToggleButton  开关按钮(4.0之前)
     android:textOn="开"  开启状态时的文本
        android:textOff="关" 关闭状态的文本
        android:checked="true" 默认的选择状态
    
十,  Switch   开关按钮(4.0之后) api:14以后
       android:textOn="开"  开启状态时的文本
        android:textOff="关" 关闭状态的文本
        android:checked="true" 默认的选择状态
    

十一、高级控件


1,Spinner
    >概念;下拉菜单控件 默认显示当前选择的项(第一次展示集合中第一条数据)
    >属性:
        android:entries="@array/books"  展示数据  (note:提前知道数据是什么 )
         android:spinnerMode="dropdown" spinner 样式
         dropdown:下拉列表     设置popupBackground  每一项的背景颜色
         dialog:弹出框              设置prompt   标题      调用的是Values/string.xml/string  

     >监听:setOnItemSelectedListener
    
2,什么是Adapter?
    >适配器  将数据转换成控件识别的形式

    >子类:BaseAdapter(下周)    ArrayAdapter     SimpleAdapter
    
3,ArrayAdapter的使用?
    >一般用于只有String类型数据  展示到TextView上

    >如果三个参数的ArrayAdapter   item布局的根节点 必须是TextView
         如果跟节点不是TextVIew 三个参数的会报错      使用四个参数的ArrayAdapter
    
4,SimpleAdapter的使用:
    >处理复杂的数据   (带有图片和文字)

       Context context:   上下文
           List<? extends Map<String, ?>> data:  数据源
             int resource:  布局
             String[] from:  数据源中带key的数组
             int[] to     :  布局资源中id的数组
             
             note:from里的key和to里的控件id  是对应关系

5,AutoCompleteTextView
    >自动索引的EditText(文本输入框)

    > 默认输入俩个字符  才开始索引
          android:completionThreshold="1" 输入几个字符开始索引
        
6,addTextChangedListener()的用法?

    >
    
        
        //文本发生变化的监听   可以对EditText操作  
        autoView.addTextChangedListener(new TextWatcher() {
            
            /**
             * 改变文本时调用
             * CharSequence s:变化之后的文本
             * int start:变化的起点  从哪里开始改变
             * int before: 相比较文本变化  添加没有改变0     删除改变
             * int count:相比较文本变化     添加有值          删除没有改变0
             */
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub
                Log.e("AAA", "==onTextChanged==s:"+s+"=start:"+start+"=before:"+before+"=count:"+count);
            }
            
            /**
             * 改变文本之前调用
             * CharSequence s:变化之前的文本
             * int start:变化之前的文本下标
             * int count:相比较文本的变化   添加不变的0   删除是改变:删除几个展示结果
             * int after:相比较文本的变化     如果添加是有值    如果删除不变   0
             */
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub
                Log.e("AAA", "==beforeTextChanged==s:"+s+"=start:"+start+"=count:"+count+"=after:"+after);
                
            }
            /**
             * 改变文本之后调用
             * Editable s:改变之后的文本
             */
            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub
                Log.e("AAA", "==afterTextChanged==s:"+s);
            }
        });
    

 

    

猜你喜欢

转载自blog.csdn.net/Star_cmx/article/details/82830921
今日推荐