UI Layout

  • 布局

    • 布局3种方法

      • xml

      • Java

      • xml+java

    • 四大布局

      • LinearLayout(线性布局)

        • 6大属性

          • android.orientation:控制内部组件排列方向

          • android.gravity:控住内部组件的位置(文字在按钮中的位置)

            • android.layout_gravity:控制自身在父组件的位置(按钮在布局中的位置)
          • android.layout_height:控制自身在父组件的高度

            • android.height:控制组件内部内容的高度
          • android.layout_width:控制自身在父组件的宽度

          • android.id:设置id

          • android.background:设置背景,可以为颜色或图片

      • TableLayout(表格布局)

        • 继承自线性布局,拥有6大特性

        • 每行都是一个TableRow,多个控件多一列

        • 自身3大新特性

          • android.collapseColumns:设置需要隐藏的列

          • android.shrinkColumns:设置允许收缩的列

          • android.stretchColumns:设置允许延伸的列

      • FrameLayout(帧布局)

        • 2大特性

          • android.foreground:设置一个前景图像,永远在最上层

          • android.foregroundGravity:设置前景图像位置

      • RelativeLayout(相对布局)

        • android:layout_alignParentRight/Left/Top/Bottom:根据父容器定位

        • android:layout_toLeftOf/layout_toRightOf/above/below:根据兄弟组件定位

        • android:layout_alignTop/Bottom/Left/Right:与参考组件边界对齐

  • context:是一个抽象类,一共有Activity,Application,Service这3个继承自它的具体实现子类

  • 基本组件

    • TextView(文本框)

      • hint:限制默认文本

      • singleLine:该文本框是否可为单行模式,默认false,不为单行

    • EditText(输入框)

      • EditText继承自TextView
    • Button(按钮)

      • 实现监听的三种方式:

        • 1.使用FindViewById+onClickListener匿名内部类监听

        • 2.为按钮声明OnClick方法并在Activity中实现(方法用public修饰)

        • 3.实现view.OnClickListener接口中的OnClick方法

    • imageButton(图像按钮)

      • 从android:src中给ImageButton设置图片样式
    • RadioButton(单选框)

      • RadioGroup.onCheckedChanged(RadioGroup group, int checkedId)参数

        • 1.监听单选框的改变时用RadioGroup设置监听

        • 2.监听最后选择的单选框

      • 所有的单选按钮都属于RadioGroup中

    • Checkbox(复选框)

      • 使用CompoundButton.OnCheckedChangeListener监听每一个checkbox

      • onCheckedChanged(CompoundButton buttonView, boolean isChecked)参数含义

        • 1.当前监听的按钮

        • 2.是否被选中

    • Spinner(下拉框)

      • 两种实现方法

        • 1.通过xml生成,使用android:entries(不常用)

        • 2.通过ArrayAdapter生成:ArrayAdapter<>(this, android.R.layout.simple_spinner_item, s2);三个参数

          • 上下文

          • 下拉列表的样式

          • 数组

      • 监听方法

        • 两种方法都需要setOnItemSelectedListener监听

        • onItemSelected(AdapterView<?> parent, View view, int position, long id)参数

          • 1.当前的下拉框

          • 2.被点击的的Item:adapterView.getItemAtPosition(i).toString()

          • 3.被点击的item在下拉框中的位置

          • 4.被点击的item在数据库中row id

        • 四次关联

          • 1.数组和Adapter

          • 2.Adapter和Spinner

          • 3.Spinner和Layout

          • 4.Layout和Activity

      • ImageView

        • 使用android:src控制ImageView内容
      • ListView(列表视图)

        • 三种使用方法

          • 1.在xml文件中使用entries属性,调用strings中的静态数据

          • 2.使用SimpleAdapter或者ArrayAdapter生成:SimpleAdapter(this,lists,R.layout.item,new String[]{“im”,“tv1”,“tv2”},new int[]{R.id.image1,R.id.tv1,R.id.tv2});(list中需要map数组)

          • 3.当只有一个ListView时,可以直接继承ListAvtivity,然后调用方法

        • 监听方式与Spinner类似

      • DatePicker(日期拾取器)

        • 获取日期拾取组件

        • 获取当前年月日

        • 初始化日期拾取器,并在初始化时指定监听器:datepicker.init(year, month, day, new DatePicker.OnDateChangedListener())

      • TimePicker(时间拾取器)

        • 获取时间拾取组件

        • 获取当前时分秒

        • 为时间拾取器设置监听器:timepicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener()

      • Chronometer(计时器)

        • setBase(SystemClock.elapsedRealtime()); // 设置起始时间

        • setFormat(" 已用时间: %s");// 设置显示时间的格式

        • start();// 开启计时器

        • 为计时器设置监听器:setOnChronometerTickListener(new Chronometer.OnChronometerTickListener())

    • Listview

    • RecyclerView

  • 高级组件

    • AutoCompleteTextView(自动完成文本框)

      • 基本属性

        • 1.completionHint 指定提示标题

        • 2.completionThreshold 设置输入第几个字才提示

        • 3.dropDownHeight 下拉菜单高度

        • 4.dropDownWidth 下拉菜单宽度

        • 5.dropDownHorizontalOffset 水平偏移,默认与文本框左对齐

        • 6.dropDownVerticalOffset 垂直偏移,默认紧跟文本框

        • 7.popupBackground 设置背景

        • 8.继承于EditText,即支持其属性

      • 基本用法

        • 1.xml 添加

        • 2.定义字符串数组常量,即列表选项

        • 3.使用适配器ArrayAdapt,将自动完成文本框和适配器关联(参数:context,样式,数组数据)

        • 4.通过监听获取文本内容

    • TabHost(选项卡)

      • 基本用法

        • 1.在xml文件中使用TabHost、TabWidget和FrameLayout完成布局

          • TabHost、TabWidget和FrameLayout的id为固定值不能更改

          • @android:id/tabhost

          • @android:id/tabs

          • @android:id/tabcontent

        • 2.各个标签页内容所需要的XML文件

        • 3.在xml对应的Activity中获取并初始化TabHost

          • table.setup

          • 声明LayoutInflater对象inflater = LayoutInflater.from(this);

        • 4.为TabHost对象添加标签页

          • tabHost.addTab(tabHost.newTabSpec(“01”).setIndicator(“第一个”).setContent(R.id.linear1));
    • ImageSwitcher(图像切换器)

      • 基本用法

        • 获取布局文件中的图片切换器

        • 设置淡入淡出动画

        • 设置ViewFactory,重写makeView

        • 设置默认显示图像:setImageResource

    • GridView(网格视图)

      • 不同属性

        • numColumns列数,通常大于1

        • columnWidth每列的宽度

        • tretchMode拉伸

      • 基本用法与ListView相同

    • Gallery(画廓视图)

      • 与GridView类似
    • RatingBar(星级评分条)

      • 基本属性

        • isIndicator是否允许用户改变星级,默认true,不能改变

        • numStars总共有几颗星

        • rating默认有几颗星(float)

        • stepSize指定每次改变的最少的星级,默认为0.5颗

      • 主要方法

        • getRating获取等级,选中几颗星

        • getStepSize获取每次最少要改变几个星级

        • getProgress获取进度

    • SeekBar(拖动条)

      • 基本属性

        • max 最大值

        • progress 初始进度

        • padding 填充空隙

      • 基本用法

        • 添加拖动条

        • 设置监听 OnSeekBarChangeListener,重写三个方法

    • ProgressBar(进度条)

      • 基本属性

        • max最大值

        • progress制定进度条已完成位置

        • progressDrawable设置进度条达绘制形式

      • 基本用法

        • 通过findViewById找到XML文件中的ProgressBar

        • 新建一个线程来更新进度

        • 声明一个用于处理消息的Handler类的对象来收发消息

  • 适配器

    • 1.ArrayAdapter(以下拉框应用为例)

      • 使用方法

        • 1.定义一个新的String数组

        • 2.定义一个新的Spinner

        • 3.定义一个新的ArrayAdapter

          • new ArrayAdapter(Activity.this,布局文件,字符串数组名)
        • //4.为ArrayAdapter绑定每个下拉选项的样式

          • adapter.setDropDownViewResource(布局文件)
        • 5.将ArrayAdapter绑定至Spinner

          • spinner.setAdapter(adapter)
        • //6.将Spinner绑定至布局文件中

          • LinearLayout.addView(spinner)
      • 用途

        • 1、装配ListView/Spinner

        • 2、搜索结果结果集并自动匹配给AutoCompleteTextView

    • 2.SimpleAdapter

      • 使用方法

        • 1.新建一个xml文件,新建ListView/Spinner组件

        • 2.新建一个xml文件,控制List中每个元素的样式布局

        • 3.新建一个list,用来储存每个Map

        • 4.新建一个Map

        • 5.将每个Map存入list中

        • 6.依据参数表新建一个SimpleAdapter:new SimpleAdapter(this,lists,R.layout.item,new String[]{“im”,“tv1”,“tv2”},new int[]{R.id.image1,R.id.tv1,R.id.tv2})。

          • 五个参数:Context context:上下文,一个嵌套Map集合的list,控制每个标签显示的布局,每个标签需要显示哪些内容.每个标签需要显示内容的id
        • 7.将adpter与ListView/Spinner绑定

    • BaseAdapter(网格试图为例)

      • 定义一个新的BaseAdapter

      • 重写4种方法

        • getView()

          • 获取视图

            • 声明imageview对象

            • 实例化imageview对象

            • 设置imageview的图片

            • 返回imageview

        • getItemId()

          • 获取当前选项的ID
        • getItem()

          • 获取当前选项
        • getCount()

          • 获取总数目
      • 将适配器与GridView关联

    • 自定义适配器

      • 继承BaseAdapter

        • 重写四个方法

          • 在getView中获取每个item对应的View视图

            • 获取布局映射器对象

              • LayoutInflater.from
            • 将定义好的xml文件转化为View对象

              • inflater.inflate
            • 给view对象中的控件进行赋值

              • findViewById.set
  • 消息提示框与对话框

    • Toast(消息提示框)

      • 创建方法
        • 使用构造方法进行创建
          • Toast.makeText(ActivityBar.this,text,Toast.LENGTH_SHORT).show();
    • Notification(状态栏通知)

      • 基本用法

        • 1.声明一个NotificationManager,配置属性

        • 2.声明一个Channel对象,配置属性

        • 3.将Channel交由NotificationManager管理

        • 4.声明一个Notification对象,配置属性

        • 5.将Notification对象交给NotificationManager管理

    • AlertDialog(对话框)

      • 1.创建对话框new AlertDialog.Builder(MainActivity4AlertDialog.this).create()

      • 2.设置属性

      • 3.添加弹出选项setButton/setItems/setSingleChoiceItems

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值