Android View类

参考:View类详解(游戏开发必备)

view基本概念

在Activity显示的控件 都叫做View(View类 是所有的控件类的父类 比如 文本 按钮)

##在Activity当中获取代表View的对象
Activity读取布局文件生成相对应的 各种View对象

TextView textView=(TextView)findViewBy(R.id.textView)

设置view的属性

Activity_mian.xml 这样的xml布局文件中发现了,类似@+id/和@id/到底有什么区别呢? 这里@可以理解为引用,而多出的+代表自己新声明的。

View的自定义

通过继承View,可以很方便地定制出有个性的控件出来。

自定义View的常用方法:

onFinishInflate() 当View中所有的子控件均被映射成xml后触发  
onMeasure(int, int) 确定所有子元素的大小  
onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发  
onSizeChanged(int, int, int, int) 当view的大小发生变化时触发  
onDraw(Canvas) view渲染内容的细节  
onKeyDown(int, KeyEvent) 有按键按下后触发  
onKeyUp(int, KeyEvent) 有按键按下后弹起时触发  
onTrackballEvent(MotionEvent) 轨迹球事件  
onTouchEvent(MotionEvent) 触屏事件  
onFocusChanged(boolean, int, Rect) 当View获取或失去焦点时触发   
onWindowFocusChanged(boolean) 当窗口包含的view获取或失去焦点时触发  
onAttachedToWindow() 当view被附着到一个窗口时触发  
onDetachedFromWindow() 当view离开附着的窗口时触发,Android123提示该方法和  onAttachedToWindow() 是相反的。  
onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发

自定义View三种实现方式

参考网页:https://www.2cto.com/kf/201408/327797.html

1、组合控件

组合控件,顾名思义就是将一些小的控件组合起来形成一个新的控件,这些小的控件多是系统自带的控件。

2、自绘组件

自绘控件的内容都是自己绘制出来的,在View的onDraw方法中完成绘制。

3、继承控件

就是继承已有的控件,创建新控件,保留继承的父控件的特性,并且还可以引入新特性。

自定义类的构造函数

public CustomView2(Context context) {//直接在代码中调用时,使用该函数
    super(context);
}
 
public CustomView2(Context context, AttributeSet attrs) {//在xml中使用自定义view时,使用这个函数
    super(context, attrs);
}
 
public CustomView2(Context context, AttributeSet attrs, int defStyle) {//可以由上一个函数中手动调用
    super(context, attrs, defStyle);
}

**自定义函数中的attrs表示view的属性集,defStyle表示默认的属性资源集的id **

XML布局文件上使用自定义的类

在自定义的类里面必须要包括一个构造函数 XXX(Context context,AttributeSet attr){super(context,attr);}

在XML中使用 package.class 来调用,如包名为com.test 类为HelloWorld 则在XML中 <com.test.HelloWorld/>

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×