一.自定义view
1.编写Java代码,自定义view继承view类或其子类
2.编写逻辑,重写构造器,重写自己需要的方法。
3.将其Java文件引入到当前活动的viewgroup的layout中
可定义的重写方法有
方法 | 作用(条件) |
---|---|
构造器 | 重写自定义view的最基本 ,构造界面时会用到 |
onFinishinflate() | 回调方法,当应用加载组件并构建界面之后,会回调该方法 |
onMeasure(int,int) | 调用该方法来检测View组件及其包含所有子组件的大小 |
onLayout(boolean,int,int,int,int) | 当该组件需要分配其子组件位置和大小时,回调 |
onDraw(Canvas) | 当该组件要绘制他的内容时回调该方法 |
onKeyDown(int ,KeyEvent) | 当某个键被按下时触发该方法 |
onKeyUp(int,KeyEvent) | 当松开某个键时触发该方法 |
onTrackballEvent(MotionEvent) | 当发生轨迹球事件时触发该方法 |
onTeachEvent(Motion) | 当发生触摸屏事件时触发该方法 |
onFoucsChangs(boolean,int,Rect) | 当该组件焦点发生改变时触发该方法 |
onWindowFoursChangs(boolean) | 当包含该组件的窗口焦点发生改变时 |
实现简单自定义view的java类
public class MyView extends View{
public MyView(Context context){
super(comtsxt);
//定制样式
}
}
引入布局
public MainActivity extends Activity{
public void onCreatView(Bundle savedInstanceState){
super(context,attrs);
LayoutInflater.from(context).inflate(R.layout.myview,this);
MyView myView=new Myview(this);
//创建初始化
LinearLayout root =findViewById(R.id.root);
root.addView(mayView);
}
{