当前位置: 首页 > news >正文

为什么网站要改版网站制作的软件

为什么网站要改版,网站制作的软件,桂阳 网站建设,wordpress只显示文本摘要原文地址#xff1a;http://android.xsoftlab.net/training/custom-views/index.html 引言 Android框架含有大量的View类#xff0c;这些类用来显示各式各样的数据#xff0c;并可以直接与用户交互。但是某些时候#xff0c;APP有一项很特殊的需求#xff0c;但是框架中…原文地址http://android.xsoftlab.net/training/custom-views/index.html 引言 Android框架含有大量的View类这些类用来显示各式各样的数据并可以直接与用户交互。但是某些时候APP有一项很特殊的需求但是框架中的View还不能满足这样的需求这时就需要根据需要自己创建一个全新的View类了。这节课程将会学习如何创建这样的自定义View。 创建View类 一个设计良好的自定义View与其它任何设计良好的View类都很相似。它封装了一系列特殊的功能并将简单易用的接口暴露了出来。它高效、合理的使用了CPU及内存等资源。除了要实现上面这些特点之外自定义View还需要 遵循Android标准。提供可以工作于Android XML布局中的自定义样式属性。发送可访问事件。Android平台的兼容性。 Android框架提供了一系列的基础类及XML标签来辅助你创建符合以上标准的View。这节课将会学习如何使用Android框架来创建自定义View的核心功能。 创建View的子类 Android中的所有View类都继承于View。自定义View可以直接继承View也可以继承View子类(比如Button)。 为了使Android Developer Tools可以与你的View产生交互应当至少提供一个含有Context与AttributeSet作为参数的构造方法。这个构造方法可以使布局编辑器创建或编辑View的实例。 class PieChart extends View {public PieChart(Context context, AttributeSet attrs) {super(context, attrs);} } 定义自定义属性 如果要往UI中添加View你需要以XML元素的形式指定该View并通过元素属性控制View的行为与外貌。定义良好的自定义View还可以通过XML添加、设计这些样式。为了使自定义View拥有以下这些行为你必须 在 declare-styleable 资源元素中定义自定义View的属性。在XML布局中指定属性的值。在运行时接收属性值。将接收到的属性值应用到View中。 这部分将会学习如何定义属性及如何指定它们的值。下部分会学习在运行时如何处理接收并使用这些值。 要定义自定义属性需要在工程中添加 declare-styleable 资源。通常会将这些资源放在res/values/attrs.xml文件中。下面是一个attrs.xml文件的示例 resourcesdeclare-styleable namePieChartattr nameshowText formatboolean /attr namelabelPosition formatenumenum nameleft value0/enum nameright value1//attr/declare-styleable /resources 上面这段代码声明了两个自定义属性showText 和 labelPosition它们都属于一个名为PieChart的风格实体。风格实体的名字按照惯例与对应的自定义View的类名相一致。尽管不是必须要遵循这项惯例但很多受欢迎的代码编辑者都喜欢依照这项命名惯例来提供实现声明。 一旦定义了自定义属性你就可以像内置属性那样在XML文件中使用它们。唯一的不同就是自定义属性属于不同的命名空间。它们不属于标准的http://schemas.android.com/apk/res/android命名空间而属于http://schemas.android.com/apk/res/[your package name]。举个例子下面是如何使用自定义属性的示例 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:customhttp://schemas.android.com/apk/res/com.example.customviewscom.example.customviews.charting.PieChartcustom:showTexttruecustom:labelPositionleft / /LinearLayout 为了避免重复定义命名空间示例中使用了xmls指令。该指定使http://schemas.android.com/apk/res/com.example.customviews命名空间与custom别名产生了关联。你可以为命名空间使用任何你想使用的名称。 注意这里在布局中引用的自定义View采用的是自定义View的权限定名。如果View类是个内部类还必须通过外部类的类名进一步限定。举个例子 PieChart含有一个名叫PieView的内部类。如果要为这个类使用自定义属性你应该使用标签com.example.customviews.charting.PieChart$PieView. 应用自定义属性 当一个View从XML布局中被创建后XML标签中的所有属性都会被读取并通过View的构造方法以AttributeSet的形式传递到View中。尽管它可能是直接从AttributeSet中读取数据的但是它还是有一些缺点 资源所引用的属性值不能够被解析不支持Style 相反的可以将AttributeSet传给obtainStyledAttributes()方法。该方法会返回一个TypedArray对象它内部包含了被间接引用的数组值。 Android资源编译器为了使使用obtainStyledAttributes()方法更加简便做了大量的工作。在资源目录中的每一个资源都会在R.java中定义相应的属性id。你可以使用这预定义的常量去TypedArray中读取属性。下面是PieChart类如何读取属性的示例 public PieChart(Context context, AttributeSet attrs) {super(context, attrs);TypedArray a context.getTheme().obtainStyledAttributes(attrs,R.styleable.PieChart,0, 0);try {mShowText a.getBoolean(R.styleable.PieChart_showText, false);mTextPos a.getInteger(R.styleable.PieChart_labelPosition, 0);} finally {a.recycle();} } 注意TypedArray是一个共享资源必须在使用完之后对其进行回收。 添加属性及事件 Attributes是控制View的外观与行为的一种强大的方式但是它只有在View初始化的时候才会被读取。如果要提供动态的行为则需要暴露相应的getset方法。下面的代码展示了PieChart是如何暴露名为showText的属性方法的 public boolean isShowText() {return mShowText; } public void setShowText(boolean showText) {mShowText showText;invalidate();requestLayout(); } 注意在setShowText中调用了invalidate()方法与requestLayout()方法。这些方法可以确保View的行为更改生效。在更改完成属性之后不得不重新绘制该View这样才能使View的外观生效。这样系统才会知道该View需要重新绘制。同样的如果新属性值可能会引起尺寸或者形状的更改还需要请求新的布局。忘记调用这些方法会引起很难发现的Bug. 自定义View还应当支持事件监听器以便与重要的事件交互。比如PieChart暴露一个名为OnCurrentItemChanged的自定义事件用来通知监听器用户旋转了饼图。 很容易忘记暴露属性和事件尤其你是唯一一个自定义View的用户。在定义View接口时多花点心思可以在将来维护的时候少花点时间和精力。一个良好的习惯就是总是暴露任何成员属性的外观与行为的属性方法。 可访问性 自定义View应当支持更宽泛的用户。这其中包括视力有缺陷的残疾人。为了支持这部分用户的使用应当 使用android:contentDescription属性标识你的输入字段在适当的时候通过sendAccessibilityEvent()方法发送可访问事件支持更多的控制器比如D-pad及轨迹球 有关更多信息请参见 Making Applications Accessible。 阅读完本篇文章之后可以继续阅读下一篇文章Android官方开发文档Training系列课程中文版创建自定义View之View的绘制
http://www.pierceye.com/news/917100/

相关文章:

  • 做网站的成本费用钱宝网站怎么做任务
  • 网站上的格式用html怎么做部队网站设计
  • 帮客户做网站内容社交网站有哪些如何做
  • 网站开发与设计实训总结两千字公众号制作的网站开发
  • 一个公司做2个产品网站怎么做的用html5做的网站素材
  • 内乡网站建设咸阳网站建设报价
  • 企业网站多少钱扶余手机网站开发
  • 做外汇网站卖判刑多少年如何找回网站后台密码
  • 怎么做优惠券网站asp.net mvc 5网站开发之美
  • 网站底部浮动电话广告福建住房和城乡建设部网站
  • 建站之星破解版wordpress 置顶排序
  • c2c网站代表和网址涟源市建设局网站
  • 哪个网站有免费的模板免费网上商城系统
  • 一个网站的建设需要什么东西前十强排名家装公司
  • 广州网站建设报价表石家庄搜索排名提升
  • 网站备案步骤企业网站手机版模板免费下载
  • 郑州高端品牌网站建设镇江网站营销推广
  • 网站开发简单的框架南昌手机网站
  • 网站分析与优化百度新闻源网站有哪些
  • 直播网站开发秀色上海综合新闻
  • 电子商务网站建设与管理课后题答案企业网站推广哪家好
  • 网站被挂黑链怎么删除石家庄企业网站建设
  • 网站模板怎么连接域名可视化网页设计在线
  • 美术馆网站建设要求开发软件多少钱一个月
  • 直播网站开发核心技术wordpress访问次数插件
  • wap网站 劣势微信小程序怎么写
  • 商业网站开发与设计网站seo是什么意思
  • 内蒙古住房和城乡建设网站做网站的人怎么上传内容的
  • 视频网站视频预览怎么做的美丽说网站案例分析
  • 宝安多屏网站建设公司好吗网站启用cdn加速