zoukankan      html  css  js  c++  java
  • Android网络课程笔记-----自定义控件的方法和技巧

      

     
    一、自定义控件的好处
          1. 做到特殊的效果
          2. 差异化
          3. 突破系统的限制
          4. 提高用户体验
     
    二、如何自定义控件
          简单的斜角的文本控件
          1. 创建一个类,继承View或它的子类
          2. 添加一个参数的构造方法
          3. 重写onDraw()方法
                    canvas                 画布
                    paint                   画笔
     
    三、如何使自定义控件动态化
          原理:onDraw()方法被触发
          通过方法: invalidate()
          
    四、如何定义自定义控件的属性
           目的:使自定义控件的使用更加方便、灵活
           步骤:
           1. 增加两个参数的构造方法
               目的:能够读取到开发者在布局文件中编辑的组件属性
           2. 定义属性
               在valuse中创建一个attrs.xml
               声明属性:         
         <declare-styleable name="MyTextView">
            <attr name="content" format="string" />
            <attr name="contentColor" format="color" />
            <attr name="contentSize" format="dimension" />
        </declare-styleable>
     
    3. 在两个参数的构造方法中,读取开发者在布局文件中
        使用的属性值
        代码:
      TypedArray o = context.obtainStyledAttributes(attrs, R.styleable.MyTextView);
      mContent = o.getString(R.styleable.MyTextView_content);
      mColor = o.getColor(R.styleable.MyTextView_contentColor, Color.BLACK);
      mDimen = o.getDimension(R.styleable.MyTextView_contentSize, 18);
      o.recycle();
     
              4. 使用属性
                  4.1 在布局中创建新的命名空间
                    xmlns:myapp="http://schemas.android.com/apk/res/com.yuchen.test"
                   注意:com.yuchen.test为应用的包名,不是代码的包名
                  42. 在布局中使用自定义属性
                                   myapp:content="自定义属性"
            myapp:contentColor="#0000FF"
            myapp:contentSize="30sp"
                 
    五、更简单的创建自定义控件的技巧
           创建Android Object,选择CustomView
     
    六、如何学会更多自定义控件的绘制图形的方法技巧
          看ApiDemos中的Graphics中的例子,
          里面所有的都是自定义控件
  • 相关阅读:
    client-go和golang源码中的技巧
    使用Prometheus监控snmp
    kubernetes client-go解析
    go 语言的一个赋值操作
    使用Prometheus监控bind9的DNS服务
    验证Prometheus alertmanager邮件发送
    JS 监听浏览器各个标签间的切换
    通过案例理解position:relative和position:absolute
    浏览器的统一指针事件:Pointer Event
    Chrome浏览器读写系统剪切板
  • 原文地址:https://www.cnblogs.com/vijay/p/3558292.html
Copyright © 2011-2022 走看看