android 自定义View学习总结-继承自ViewGroup
来源:互联网 发布:淘宝授权书怎么找哇 编辑:程序博客网 时间:2024/05/16 15:49
一、android 自定义View学习总结-继承自ViewGroup
android中自定义view可以有继承view,继承viewgroup,继承系统的View(如LinearLayout,FrameLayout,TextView等)。
public class MyView extends ViewGroup{ public MyView(Context context, AttributeSet attrs) {} @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { }}
继承自ViewGroup需要实现它的onLayout方法,因为这个方法是抽象方法。
onLayout(boolean changed, int l, int t, int r, int b)
onLayout有五个参数,l,t是代表一个view左上角的点,r,b是代表右下角的点。
二、例子
1、创建一个自定义View
public class MyView extends ViewGroup { private GestureDetector gestureDetector; public MyView(Context context, AttributeSet attrs) { super(context, attrs); gestureDetector = new GestureDetector(context,new GestureDetector.SimpleOnGestureListener(){ @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { scrollBy((int)distanceX,getScrollY()); return true; } }); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { for(int i=0;i<this.getChildCount();i++){ View childView = getChildAt(i); childView.layout(i*getWidth(),0,(i+1)*getWidth(),getHeight()); } } @Override public boolean onTouchEvent(MotionEvent event) { gestureDetector.onTouchEvent(event); super.onTouchEvent(event); return true; }}
从上面创建自定义View的onLayout中可以看出,将会给自定义View的子View从左到右全屏分布。同时,使用GestureDetector 进行滑动手势的响应操作,利用scrollBy进行拖动。
2、给自定义View添加子View
for(int i=0;i<3;i++){ ImageView imageView = new ImageView(this); imageView.setBackgroundResource(R.mipmap.ic_launcher); mMyView.addView(imageView); }
3、效果图
利用这个原理,可以实现导航页功能。
0 0
- android 自定义View学习总结-继承自ViewGroup
- android 自定义View学习总结-继承自ViewGroup(2)
- Android继承自View和ViewGroup,自定义控件
- 自定义View学习笔记之继承ViewGroup
- Android自定义View(四)继承ViewGroup
- Android 自定义view(三) 继承ViewGroup
- 自定义View继承ViewGroup
- 自定义View继承ViewGroup
- Android自定义控件-完全自定义(继承View ,ViewGroup)
- android自定义View(viewGroup)
- android自定义View、ViewGroup
- android自定义 ProgressBar(继承自View)
- Android学习:自定义ViewGroup方法总结
- Android学习:自定义ViewGroup方法总结
- 自定义view继承viewgroup的解释
- 自定义view继承viewgroup,实现组合按钮。
- 自定义View(五)之继承ViewGroup
- 自定义View---继承ViewGroup动效
- zabbix系列(四)Zabbix3.0.4添加对Nginx服务的监控
- 使用Cmake时 C++添加命令行参数"-std=c++0x"
- Aizu 2224 (最大生成树,并查集)
- 内存分配 指针和数组对比
- Activity的 LaunchMode和Flags
- android 自定义View学习总结-继承自ViewGroup
- AJAX学习1.1
- 二叉树两结点的最低共同父结点
- Unity Shader Example 17 (Skybox)
- 防止手机进入休眠状态而导致程序不能正常运行——WakeLock
- Gibbs Sampling\吉布斯采样(一)
- openpyxl - 一些简单用法
- 自定义轮播图SlideView
- rails中获取url信息的一些方法