[Android][第一行代码][第 3 章 View]

来源:互联网 发布:银泰证券股票交易软件 编辑:程序博客网 时间:2024/05/17 02:28

01. Button

这里主要记录一下,在布局文件里面给 Button 设置的文字是“Button”,但是最终的显示结果却是“BUTTON”,小写变大写。这是由于系统会对 Button 中的所有英文字母自动进行大写转换,使用以下代码禁止这一默认特性:

android:textAllCaps="false"

其次,给按钮设置点击事件应该有四种方式。

02. 可见属性

通过 android:visibility 进行指定

  • visible 可见。
  • invisible 不可见,但仍然占据着原来的位置和大小,变成透明状态了。
  • gone 不可见,而且不再占用任何屏幕空间。

03. 布局

  • LinearLayout 线性布局

    • LinearLayout 的默认方向是 horizontal
    • android:layout_weight 属性的计算方法,对剩余空间按比例分配
    • android:layout_gravity="center"android:gravity="center" 两者之间的区别
  • RelativeLayout 相对布局

    • android:layout_centerInParent="true"
    • android:layout_alignParentLeft="true"
    • android:layout_above="@id/bt_center"
    • android:layout_below="@id/bt_center"
    • android:layout_toLeftOf="@id/bt_center"
    • android:layout_alignLeft="@id/bt_center"
    • android:layout_alignBottom="@id/bt_center"
    • android:layout_alignBaseline="@id/bt_center"
  • FrameLayout 帧布局

    • 一层一层的覆盖
  • PercentRelativeLayoutPercentFrameLayout 百分比布局

    • 由于 LinearLayout 本身已经支持按比例指定控件的大小,因此百分比布局只为 RelativeLayoutFrameLayout 进行了功能扩展。

    • 不再使用 wrap_contentmatch_parent 而是直接指定百分比。

    <android.support.percent.PercentRelativeLayout    android:layout_width="match_parent"    android:layout_height="0dp"    android:layout_weight="1">    <Button      android:id="@+id/bt_center"      android:layout_centerInParent="true"      android:text="Center"      android:textAllCaps="false"      app:layout_heightPercent="20%"      app:layout_marginPercent="5%"      app:layout_widthPercent="20%" />  </android.support.percent.PercentRelativeLayout>

04. ViewGroup 图

ViewGroup

  1. 所有控件都是直接或者间接继承自 View 的。
  2. 所有布局都是直接或者间接继承自 ViewGroup 的。
  3. View 是 Android 中最基本的一种 UI 组件,它可以在屏幕上绘制一块矩形区域,并能响应这块区域的各种事件
  4. ViewGroup 是一种特殊的 View,它可以包含很多子 View子 ViewGroup,是一个用于放置控件和布局的容器

05. 自定义控件

  1. 引入布局,使用 <include> 标签引入一个已经写好的布局。
  2. 注意: 获取上下文使用 getContext() 方法。
  3. 注意: 加载布局使用LayoutInflater.from(context).inflate(R.layout.inclue_title, this); 注意 第二个参数
  4. 最简单的自定义控件,查看代码即可。

06. ListView

  1. 适配器有多种,简单的使用ArrayAdapter
  2. 掌握使用 ViewHolder 进行复用来提升运行效率。
  3. 点击事件的基本使用。

07. RecyclerView

  1. 注意在使用的时候需要先设置布局管理器

  2. 为什么 ListView 很难或者根本无法实现的效果在 RecyclerView 上这么轻松就能实现?这主要得益于 RecyclerView 出色的设计。ListView 的布局排列是由自身去管理的,而 RecyclerView 则将这个工作交给了 LayoutManager,LayoutManager 中制定了一套可扩展的布局排列接口,子类只要按照接口的规范来实现,就能定制出各种不同排列方式的布局了。

  3. RecyclerView 并没有提供像样的点击事件,其实,ListView 的在点击事件上的处理并不人性化,setOnItemCLickListener()方法注册的是子项的点击事件,但如果想点击的是子项里具体的某一个按钮呢?虽然 ListView 也能做到,但是实现起来就相对比较麻烦了。为此,RecyclerView 干脆直接摒弃了子项点击事件的监听,所有的点击事件都由具体的 View 去注册,就再没有这个困扰了。

    int position = viewHolder.getAdapterPosition();

08. 界面最佳实践

  1. 点九图片Nine-Patch的相关知识和使用。
    • 在上边框和左边框绘制的部分表示当图片需要拉伸时就拉伸黑点标记的区域。
    • 在下边框和右边框绘制的部分表示内容会被放置的区域。
    • 使用鼠标在图片的边缘拖动就可以进行绘制。
    • 按住shift键拖动可以进行擦除。
  2. RecycleView数据更新。

09. 小结

  1. 屏幕适配相关知识。慕课网 Android-屏幕适配全攻略。

  2. Android Studio 中的 drawable-xhdpimipmap-xhdpi 文件夹的区别及使用。

  3. EditText 使用时候软键盘的弹起和收起监听。

  4. ImageView 使用时候的有三个属性需要注意

    android:src="@mipmap/ic_launcher"android:background="@mipmap/ic_launcher"android:scaleType="centerCrop"
  5. ProgressBar 如何修改颜色?

  6. 百分比布局需要更多的学习和使用。

  7. 关于 RecycleView 的源码分析可以简单的学习一下。

  8. 在 Android sdk 目录下有一个 tools 文件夹,其中的工具可以学习使用一下。

  9. 关于 LayoutInflater 布局填充的一些方法需要留意。

原创粉丝点击