自定义控件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义控件相关的知识,希望对你有一定的参考价值。
自定义控件的方式
1,组合方式
2,直接继承于view
3,直接继承于viewgroup
4,继承于其他的view,对功能进行增强(例如继承listview编成下拉刷新listview)
优酷菜单
1,布局
这里有是三个菜单,每个菜单中有一些按钮,可以用3个容器(relativelayout)来表示3个菜单
往里面添加按钮就可以了(宽是高的两倍)
2,控件的初始化
单击菜单一和菜单二的按钮
3整体思路
public void onclick(view v){
switch(v.getid()){
case R.id.btn_menu2;//单击菜单2按钮
if(menu3Showing){
//隐藏菜单3
}else{
//显示菜单3
}
menu3showing=!menu3showing;
}
}
4,实现菜单旋转Utils.hideMenu(r1_menu3);
先创建再执行的原理
隐藏的话角度是0到-180
显示的话是从-180到0
使用方法抽取来对旋转方法进行封装.
然后再点击菜单的时候调用相应的工具类就可以了.
解决在菜单隐藏后还是可以响应点击事件.这时我们遍历菜单中所有的控件
并设置控件的click属性修改utils类
快速点击按钮的问题
设置一个动画监听器
二,广告条笔记
1,首先布局,实现viewpager:页面的左右滑动
2,java代码
(viewpager需要继承的pageradapter)其中一个最终要的要重写的方法就是
instantiateitem();方法
container的理解;
isviewfromobject(用来判断是否有图片)
通过监听页面的改变来动态的改变文字面述和选择的点:
onpagechangelistener()
重写三个方法:
onpageselected
5需要实现无限循环
初始化控件的时候需要让viewpager显示到页数一半的地方
自动切换viewpager
showNextPage(){
viewpager.setcurrentItem(viewPager.getcurrentItem+1);
}
通过popupwindow实现下拉列表
1,布局
2,显示popupwindow
(创建一个popupwindow对象
显示它
)
3,代码优化
问题:按返回键的时候如果popupwindow没法隐藏,这时给其设置一个背景就可以了
可以复用popupwindow界面
4,popupwindow的宽高,位置问题
5,创建listview
number_list.xnl
item-number_list.xml
注意刷新选项
因为在listview里面点击有按钮时按钮会把焦点抢走了
解决方法有两个:
1,再使用其它按钮
2,在adapter的跟布局加上这个属性
androidLdescnedantfocusablity
5
开关按钮
measure draw方法的应用.
1面向对象设计mybutton的方法
1,先创建你好
2布局(使用mybutton)
3用面向对象的方式来设计mybutton应该拥有那些方法
修改mainactivvity
setswitchImage
setstate
setOnstatechangedlistener
创建mybutton类了
2,onmeasure方法()
这里用setMeasureDimension(backgroundWidth,backgroundHeight);lai来实现确定自定义龙剑的大小
3ondraw()方法
//画背景
canvas.drawbitmap()方法
//画滑块
canvas.drawbitmap();
4,滑动手指的时候同时滑动滑块
ontoughevent(motionEvent方法 event)
invalidate()//系统内部会重新调用ondraw方法.
5手指抬起时滑块定位
6,onstate方法
可以让开关直接就到开或者关的状态
7监听开关按钮的状态
8,自定义xml属性
1,在values目录创建attrs.xml文件
2,在跟布局中声明命名空间
3,在xml中使用自定义属性
4,在代码中读取自定义属性
以上是关于自定义控件的主要内容,如果未能解决你的问题,请参考以下文章