zoukankan      html  css  js  c++  java
  • 自定义控件

    自定义控件的方式
    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,在代码中读取自定义属性
     
     
     
     
     
     
  • 相关阅读:
    Unknown host mirrors.opencas.cn You may need to adjust the proxy settings in Gradle 报错及解决办法
    Design editor is unavaiable until next gradle sync报错及解决办法
    mkdir创建目录失败
    读书笔记之梦断代码(三)
    Android学习——更新数据
    Android学习——添加数据
    Android学习——升级数据库
    Android学习——创建数据库
    开课第十一周周总结
    Android学习——数据库简介
  • 原文地址:https://www.cnblogs.com/kaidi1994/p/5516079.html
Copyright © 2011-2022 走看看