zoukankan      html  css  js  c++  java
  • [安卓]创建一个视图类

    跟其他任何设计良好的类一样,我们自己定义的视图类也封装了系列功能接口,有效地使用CPU和内存等等。要成为一个设计优良的类,我们的视图类还需要具有:

    • 遵从安卓标准;
    • 通过安卓XML布局提供定制的风格属性;
    • 发送可达事件;
    • 与广泛的安卓平台兼容。

    安卓框架提供一系列基本类型和XML标签来帮助开发者创建满足以上要求的视图类。下面将详细介绍。

    1、子类化视图类:

    安卓中所有的视图类都派生于view类。我们的视图类可以直接派生于view类,也可以派生于高层类,譬如Button类。为了让Android Developer Tools能和我们的视图类交互,我们至少要提供一个带Context和AttributeSet对象作为参数的构造函数。layout editor使用这个构造函数来创建和编辑我们的视图类实例。

    2、定义我们自己的属性:

    为了把内建视图加入到我们的界面之中,我们可以在XML中使用它(譬如layout)并通过内建元素属性控制它们的外观和行为。我们自己的视图类也可以这样使用,甚至还可以使用我们自己的属性,只要我们:

    • 在<declare-styleable>元素中定义我们自己的属性;
    • 在XML layout中指定属性值;
    • 在运行时获取或设置属性值;
    • 把获取到的属性值应用于我们的视图。

    如何定义我们自己的属性呢?一般来说,是在res/values/attrs.xml文件中定义,当然看上去这也是一种简单资源,所以可以出现在其它文件中。

    文件的位置:
    res/values/attrs.xml
    文件名可以任选。元素名才是资源ID名。
    资源的引用:
    XML: @[namespace:]attribute
    syntax:
    元素:
    <resources>
          必选元素,且必须是根元素。没有属性。
    <declare-styleable>
          定义洗个styleable系列。包含<attr>元素。
    属性:
    name
    字符串,必选,style的名字.
    <item>
          为style定义一个单个特性,必须是<style>元素的子元素。
    属性:
    name
    属性资源,必选,要定义的style特性的名字(一般为系统属性,譬如:android:textColor)。

    下面我们将介绍如何定义我们自己的属性以及如何指定属性值。

    This section discusses how to define custom attributes and specify their values. The next section deals with retrieving and applying the values at runtime.

    To define custom attributes, add <declare-styleable> resources to your project. It's customary to put these resources into a res/values/attrs.xml file. Here's an example of an attrs.xml file:

  • 相关阅读:
    html5阴影
    html5绘制字符串
    HTML5绘制几何图形
    Animation同时改变多个属性的动画
    Animation鱼眼效果
    Animation动画
    IE6中CSS常见BUG全集及解决方案——摘自网友
    transition多个属性同时渐变(width,height,background)
    【BZOJ2049】 [Sdoi2008]Cave 洞穴勘测
    【CF995F】 Cowmpany Cowmpensation
  • 原文地址:https://www.cnblogs.com/victor-ma/p/4435602.html
Copyright © 2011-2022 走看看