自定义VIEW①先决知识

来源:互联网 发布:小米手机怎么清除数据 编辑:程序博客网 时间:2024/06/08 09:22

最近因为毕业设计的原因需要使用到android的自定义view来做一个实时刷新的曲线图,特记录到博客上以显示进度。

  • 自定义VIEW的分类
      • 自定义ViewGroup
      • 自定义View
  • 坐标系
      • 与通常坐标系的区别
      • 各种获取坐标距离的方法
  • 颜色
      • 颜色格式
      • 代码应用


自定义VIEW的分类

自定义VIEW通常来说分为两类,一类是自定义ViewGroup,继承自ViewGroup类。另一类是自定义View,继承自View类。

自定义ViewGroup

包含子View,通常继承自ViewGroup,是为了实现特定的布局方式。

比如说继承了各种按钮的标题栏,它整合了ImageView(作为衬底)以及Button来作为一个View使用,减少了重复的代码量

自定义View

通常是为了实现一个非google原生的View,继承自View,需要自己重写View类中的各种方法以获得想要实现的效果。难度较高。

比如说想要实现一个曲线/折线图(也是我的设计目标),在原生的View库中是没有这个的,需要自己来动手实现。


坐标系

与通常坐标系的区别

通常意义上的坐标系(只考虑正半轴)是左下角为坐标原点,向右为X轴正,向上为Y轴正;而android的左上角为坐标原点,向右为X轴正,向下为Y轴正,除此之外各种相关的运算不受影响,只是改变了一下Y轴正方向。

各种获取坐标/距离的方法

  • 获取坐标(相对于父控件)的方法
getX()://获取触摸点相对父控件的X坐标getX()://获取触摸点相对父控件的Y坐标
  • 获取坐标(相对于屏幕)的方法
getRawX()://获取触摸点相对屏幕的X坐标getRawX()://获取触摸点相对屏幕的Y坐标
  • 获取距离(相对于父控件)的方法
getTop()://获取View顶相对于父View顶的距离getBottom()://获取View底相对于父View顶的距离getLeft()://获取View左相对于父View左的距离getRight()://获取View右相对于父View左的距离

颜色

颜色格式

android studo的默认颜色代码存放在res/values/colors.xml中,默认格式为RGB256色,格式为“#00ff00”,#后为16禁止字符,每两位为一个通道的颜色,从前之后分别为R(red),G(green),B(blue),00表示该通道颜色最小,ff表示该通道颜色最大。#ffffff为白色,#000000为黑色。
另外还有ARGB格式,相比RHB格式多了一个A(alpha)通道,表示透明度,00为不透明,ff为全透明。

在AndroidStudio中,在文件中设置颜色代码之后可以在该行的行号右边看到此颜色的预览。

代码应用

  • 定义颜色
    建议通过colors.xml来定义颜色并且调用
  • 颜色调用
    • Java文件中调用如下
      int color = getResources().getColor(R.color.mycolor);
    • xml文件中调用如下:
      android:background="@color/red"
0 0
原创粉丝点击