位置: 编程技术 - 正文

android 自定义view之(一) Creating a View Class(Android 自定义view炫酷动画)

编辑:rootadmin
Creating a View Class

推荐整理分享android 自定义view之(一) Creating a View Class(Android 自定义view炫酷动画),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Android 自定义view 动画,Android 自定义view 动画,Android 自定义view面试题,android自定义view的三大流程,Android 自定义view拖拽缩放旋转,android自定义view的三大流程,android自定义view的三大流程,Android 自定义view炫酷动画,内容如对您有帮助,希望把文章链接给更多的朋友!

A well-designed custom view is much like any other well-designed class. It encapsulates a specific set of functionality with an easy to use interface, it uses CPU and memory efficiently, and so forth. In addition to being a well-designed class, though, a custom view should:

Conform to Android standardsProvide custom styleable attributes that work with Android XML layoutsSend accessibility eventsBe compatible with multiple Android platforms. The Android framework provides a set of base classes and XML tags to help you create a view that meets all of these requirements. This lesson discusses how to use the Android framework to create the core functionality of a view class.Subclass a View

All of the view classes defined in the Android framework extend View. Your custom view can also extend View directly, or you can save time by extending one of the existing view subclasses, such as Button.

To allow the Android Developer Tools to interact with your view, at a minimum you must provide a constructor that takes a Context and an AttributeSet object as parameters. This constructor allows the layout editor to create and edit an instance of your view.

Define Custom Attributes

To add a built-in View to your user interface, you specify it in an XML element and control its appearance and behavior with element attributes. Well-written custom views can also be added and styled via XML. To enable this behavior in your custom view, you must:

Define custom attributes for your view in a resource element 自定义attributes属性 Specify values for the attributes in your XML layout 在xml中指定属性值 Retrieve attribute values at runtime 在runtime 取回属性Apply the retrieved attribute values to your view 在自定义view上应用取回的属性值 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 ares/values/attrs.xml file. Here’s an example of an attrs.xml file:

This code declares two custom attributes, showText and labelPosition, that belong to a styleable entity named PieChart. The name of the styleable entity is, by convention, the same name as the name of the class that defines the custom view. Although it’s not strictly necessary to follow this convention, many popular code editors depend on this naming convention to provide statement completion.

Once you define the custom attributes, you can use them in layout XML files just like built-in attributes. The only difference is that your custom attributes belong to a different namespace. Instead of belonging to the they belong package name]. For example, here’s how to use the attributes defined for PieChart:

In order to avoid having to repeat the long namespace URI, the sample uses an xmlns directive. This directive assigns the alias custom to the namespace You can choose any alias you want for your namespace.

android 自定义view之(一)  Creating a View Class(Android 自定义view炫酷动画)

Notice the name of the XML tag that adds the custom view to the layout. It is the fully qualified name of the custom view class. If your view class is an inner class, you must further qualify it with the name of the view’s outer class. further. For instance, the PieChart class has an inner class called PieView. To use the custom attributes from this class, you would use the tag com.example.customviews.charting.PieChart$PieView.

Apply Custom Attributes 应用自定义属性

When a view is created from an XML layout, all of the attributes in the XML tag are read from the resource bundle and passed into the view’s constructor as an AttributeSet. Although it’s possible to read values from the AttributeSet directly, doing so has some disadvantages:

Resource references within attribute values are not resolvedStyles are not applied Instead, pass the AttributeSet to obtainStyledAttributes(). This method passes back a TypedArray array of values that have already been dereferenced and styled.

The Android resource compiler does a lot of work for you to make calling obtainStyledAttributes() _easier. For each <declare-styleable> resource in the res directory, the generated R.java defines both an array of attribute ids and a set of constants that define the index for each attribute in the array. You use the predefined constants to read the attributes from the _TypedArray. Here’s how the PieChart class reads its attributes:

Note that TypedArray objects are a shared resource and must be recycled after use.

Add Properties and Events 添加属性和事件

Attributes are a powerful way of controlling the behavior and appearance of views, but they can only be read when the view is initialized. To provide dynamic behavior, expose a property getter and setter pair for each custom attribute. The following snippet shows how PieChart exposes a property called showText:

Notice that setShowText calls invalidate() and requestLayout() (记住setter方法里调用 invalidate() 跟 requstLayout()方法). These calls are crucial to ensure that the view behaves reliably. You have to invalidate the view after any change to its properties that might change its appearance, so that the system knows that it needs to be redrawn. Likewise, you need to request a new layout if a property changes that might affect the size or shape of the view. Forgetting these method calls can cause hard-to-find bugs.

Custom views should also support event listeners to communicate important events. (只是事件监听)For instance, PieChart exposes a custom event called OnCurrentItemChanged to notify listeners that the user has rotated the pie chart to focus on a new pie slice.

It’s easy to forget to expose properties and events(不要忘记暴露属性跟事件), especially when you’re the only user of the custom view. Taking some time to carefully define your view’s interface reduces future maintenance costs. A good rule to follow is to always expose any property that affects the visible appearance or behavior of your custom view.

Design For Accessibility(易接近)

Your custom view should support the widest range of users. This includes users with disabilities that prevent them from seeing or using a touchscreen. To support users with disabilities, you should:

Label your input fields using the android:contentDescription attributeSend accessibility events by calling sendAccessibilityEvent() when appropriate.Support alternate controllers, such as D-pad and trackball For more information on creating accessible views, see Making Applications Accessible in the Android Developers Guide.

Android 四种点击事件 Android四种点击事件xml文件代码如下:(1--3均可用)Buttonandroid:id=@id/button1android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=Button1/Buttonandroid:id=@id

activity通信 上节说到,Activity是什么;这次来了解了解Activity通信相关内容。都知道,人与人交流产生许多不可预知的美。因为交流,信息得意传递;因为交流,任

android轻量级开源缓存框架——ASimpleCache(ACache)源码分析 转载请注明出处:

标签: Android 自定义view炫酷动画

本文链接地址:https://www.jiuchutong.com/biancheng/383226.html 转载请保留说明!

上一篇:AndroidAnnotations框架Eclipse下的配置

下一篇:Android 四种点击事件(android点击事件onclick用法)

  • 房地产企业样板房会计处理
  • 进项税额和销项税额是什么
  • 医疗保险单位和个人交的区别
  • 盈余公积计提比例必须是10%么
  • 其他应付款为负数
  • 资产负债表中的流动资产包括什么
  • 备用金与其他应收款的记账规则
  • 权益筹资额计算公式
  • 哪些固定资产不需要计提折旧
  • 建安企业销售收入如何确认
  • 应有财务软件
  • 新公司第一个月报税怎么弄
  • 怎么分清楚待认识的人
  • 滞留票是什么意思
  • 非独立核算的公司怎么报税
  • 小规模企业所得税税率多少
  • 技术服务费可以计入研发费用吗
  • 专票开户行信息少股份有限公司有影响吗?
  • 应对税务稽查的六点注意事项
  • 往来账的作用
  • 财务保证金怎么做分录
  • 一般纳税人专业分包税率
  • 附加税城建税税率
  • 小规模人力资源服务费税率
  • 小规模可以接收专票吗现在
  • 材料验收入库会计分录怎么写计划成本法
  • 企业所得税季度申报表A类
  • u盘装系统系统放哪里
  • vivo手机可以安装鸿蒙
  • 何为小规模
  • 汇兑损益和财务费用区别
  • 公司为什么要签劳务协议
  • 出口企业免抵退不得抵扣进项
  • 单位交社保是不是比个人交社保以后退休金要多
  • 新会计准则计入管理费用的税费
  • 个体工商户税收标准2023年
  • 超过认证错误限制
  • 偷税行为五年后被发现要接受行政处罚吗?
  • 午夜太阳的意思
  • 企业年金如何缴纳计算方法
  • 结转损益类收入科目分录
  • 提取现金 备发工资
  • 以前年度损益调整结转到哪里
  • redis zset源码
  • 增值税纳税申报表在哪里查询
  • python描述器有什么用
  • 成本票不够怎么交税
  • 单位收到投标保证金会计分录
  • 印花税申报未扣款在哪里查询
  • canvas实现图片编辑
  • 开业请别人吃饭怎么说
  • 印花税如何记账入账
  • 企业年度关联业务往来报告表必须填吗
  • 小规模企业可以抵扣进项税吗
  • 信用减值损失与资产减值损失
  • 收到失业保险稳岗补贴怎么做会计分录
  • 金蝶利息收入的正确分录
  • 以前年度管理费用
  • 企业净资产如何算
  • 企业计提坏账准备形成可抵扣暂时性差异
  • 银行询证函费用发票
  • 利息支出税前扣除的规定
  • 银行汇票可用于异地结算吗
  • 购买办公软件的进项发票可以抵扣吗
  • 广州残保金如何计算
  • 公司借款流程
  • 史上最简单的飞镖
  • sql server 快照
  • linux 详解
  • centos启动不了图形界面
  • win7 word
  • “linux”
  • win8系统如何关闭杀毒系统
  • xp系统如何找到bitlocker
  • Win7 64位纯净版无法安装第三方主题的可行破解方法
  • 社保批扣和灵活就业批扣有什么区别
  • 关于涉访涉诉终结的规定
  • 不动产租赁和经营租赁发票的区别
  • acfunp
  • 湖南长沙税务局上班时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设