Android自定义viewGroup实现点击动画效果
本文实例为大家分享了viewGroup实现点击动画效果展示的具体代码,供大家参考,具体内容如下
publicclassMyCustomViewextendsViewGroupimplementsView.OnClickListener{
privateOnMenuItemClickListenermMenuItemClickListener;
/**
*点击子菜单项的回调接口
*/
publicinterfaceOnMenuItemClickListener{
voidonClick(Viewview,intpos);
}
publicvoidsetOnMenuItemClickListener(
OnMenuItemClickListenermMenuItemClickListener){
this.mMenuItemClickListener=mMenuItemClickListener;
}
publicenumStatus{
OPEN,CLOSE
}
privateintmRadius;
/**
*菜单的状态
*/
privateStatusmCurrentStatus=Status.CLOSE;
/**
*菜单的主按钮
*/
privateViewmCButton;
publicMyCustomView(Contextcontext){//通过new对象来调用
this(context,null);
Log.i("jj","super(context)");
}
publicMyCustomView(Contextcontext,AttributeSetattrs){//在布局中使用时调用
this(context,attrs,0);
Log.i("jj","super(context,attrs)");
}
publicMyCustomView(Contextcontext,AttributeSetattrs,intdefStyleAttr){
super(context,attrs,defStyleAttr);
Log.i("jj","super(context,attrs,defStyleAttr)");
mRadius=(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,100,getResources().getDisplayMetrics());
Log.i("jj","mRadius1:"+mRadius);
//获取自定义属性的值
TypedArraya=context.obtainStyledAttributes(attrs,R.styleable.MyCustomView,defStyleAttr,0);
mRadius=(int)a.getDimension(R.styleable.MyCustomView_radius,TypedValue
.applyDimension(TypedValue.COMPLEX_UNIT_DIP,100,
getResources().getDisplayMetrics()));
Log.i("jj","mRadius:"+mRadius);
a.recycle();
}
@Override
protectedvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){
intcount=getChildCount();
for(inti=0;i
attrs.xml:
菜单布局文件:
主界面布局文件:
在主程序直接使用:
mMenu=(MyCustomView)findViewById(R.id.id_menu);
mMenu.setOnMenuItemClickListener(newMyCustomView.OnMenuItemClickListener(){
@Override
publicvoidonClick(Viewview,intpos){
Toast.makeText(MainActivity.this,pos+":"+view.getTag(),Toast.LENGTH_SHORT).show();
}
});
mMenu.setOnTouchListener(newView.OnTouchListener(){
@Override
publicbooleanonTouch(Viewv,MotionEventevent){
if(mMenu.isOpen()){
mMenu.toggleMenu(300);
}
returnfalse;
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。