TypedArray和attrs.xml

Android中自定义属性attrs.xml、TypedArray的使用 Android中自定义属性attrs.xml、TypedArray的使用,只是做的一个示例,不喜勿喷 立即下载
     

TypedArray和attrs.xml和AttributeSet这一系列都是自定义控件属性时要用到的内容。

首先说说attrs.xml:它是定义成类似于这种形式的。

  
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <resources> 
  3.     <declare-styleable name="MyView"> 
  4.         <attr name="textColor" format="color"></attr> 
  5.         <attr name="textSize" format="dimension" />   
  6.     </declare-styleable> 
  7. </resources> 

1.主要讲讲里面的format属性:

 

①. reference:参考某一资源ID。

(1)属性定义:

  
  1. <declare-styleable name = "名称"> 
  2.  
  3.                    <attr name = "background" format = "reference" /> 
  4.  
  5.             </declare-styleable> 

(2)属性使用:

 

  
  1. <ImageView 
  2.       android:layout_width = "42dip" 
  3.       android:layout_height = "42dip" 
  4.       android:background = "@drawable/图片ID" 
  5. /> 

②. color:颜色值。

(1)属性定义:

  
  1. <declare-styleable name = "名称"> 
  2.  
  3.                    <attr name = "textColor" format = "color" /> 
  4.  
  5.             </declare-styleable> 

(2)属性使用:     

  
  1. <TextView 
  2.      android:layout_width = "42dip" 
  3.      android:layout_height = "42dip" 
  4.      android:textColor = "#00FF00"                     
  5.  /> 

③. boolean:布尔值。

    (1)属性定义: 

  
  1. <declare-styleable name = "名称"> 
  2.  
  3.                    <attr name = "focusable" format = "boolean" /> 
  4.  
  5.             </declare-styleable> 

    (2)属性使用:

  
  1. <Button 
  2.      android:layout_width = "42dip" 
  3.      android:layout_height = "42dip" 
  4.      android:focusable = "true" 
  5. /> 

④. dimension:尺寸值。

    (1)属性定义:  

  
  1. <declare-styleable name = "名称"> 
  2.          <attr name = "layout_width" format = "dimension" /> 
  3. </declare-styleable> 

    (2)属性使用:  

  
  1. <Button 
  2.      android:layout_width = "42dip" 
  3.      android:layout_height = "42dip" 
  4. /> 

⑤. float:浮点值。

    (1)属性定义:        

  
  1. <declare-styleable name = "AlphaAnimation"> 
  2.  
  3.                    <attr name = "fromAlpha" format = "float" /> 
  4.                    <attr name = "toAlpha" format = "float" /> 
  5.  
  6.             </declare-styleable> 

    (2)属性使用:           

  
  1. <alpha 
  2.    android:fromAlpha = "1.0" 
  3.    android:toAlpha = "0.7" 
  4.  /> 

⑥. integer:整型值。

    (1)属性定义:     

  
  1. <declare-styleable name = "AnimatedRotateDrawable"> 
  2.  
  3.                    <attr name = "visible" /> 
  4.                    <attr name = "frameDuration" format="integer" /> 
  5.                    <attr name = "framesCount" format="integer" /> 
  6.                    <attr name = "pivotX" /> 
  7.                    <attr name = "pivotY" /> 
  8.                    <attr name = "drawable" /> 
  9.  
  10.             </declare-styleable> 

    (2)属性使用:

         

  
  1. <animated-rotate 
  2.        xmlns:android = "http://schemas.android.com/apk/res/android"  
  3.        android:drawable = "@drawable/图片ID"  
  4.        android:pivotX = "50%"  
  5.        android:pivotY = "50%"  
  6.        android:framesCount = "12"  
  7.        android:frameDuration = "100" 

⑦. string:字符串。

    (1)属性定义:     

  
  1. <declare-styleable name = "MapView"> 
  2.                    <attr name = "apiKey" format = "string" /> 
  3.             </declare-styleable> 

    (2)属性使用:  

  
  1. <com.google.android.maps.MapView 
  2.                    android:layout_width = "fill_parent" 
  3.                    android:layout_height = "fill_parent" 
  4.                    android:apiKey = "0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g" 
  5.  
  6.                    /> 

⑧. fraction:百分数。

    (1)属性定义:            

  
  1. <declare-styleable name="RotateDrawable"> 
  2.                    <attr name = "visible" /> 
  3.                    <attr name = "fromDegrees" format = "float" /> 
  4.                    <attr name = "toDegrees" format = "float" /> 
  5.                    <attr name = "pivotX" format = "fraction" /> 
  6.                    <attr name = "pivotY" format = "fraction" /> 
  7.                    <attr name = "drawable" /> 
  8.             </declare-styleable> 

    (2)属性使用:  

  
  1. <rotate 
  2.  xmlns:android = "http://schemas.android.com/apk/res/android" 
  3.   android:interpolator = "@anim/动画ID" 
  4.     android:fromDegrees = "0" 
  5.   android:toDegrees = "360" 
  6.     android:pivotX = "200%" 
  7.     android:pivotY = "300%" 
  8.    android:duration = "5000" 
  9.     android:repeatMode = "restart" 
  10.     android:repeatCount = "infinite" 
  11.  /> 

⑨. enum:枚举值。

    (1)属性定义:      

  
  1. <declare-styleable name="名称"> 
  2.                    <attr name="orientation"> 
  3.                           <enum name="horizontal" value="0" /> 
  4.                           <enum name="vertical" value="1" /> 
  5.                    </attr>            
  6.  </declare-styleable> 

    (2)属性使用:       

  
  1. <LinearLayout 
  2.  xmlns:android = "http://schemas.android.com/apk/res/android" 
  3.                     android:orientation = "vertical" 
  4.                     android:layout_width = "fill_parent" 
  5.                     android:layout_height = "fill_parent" 
  6. > 
  7. </LinearLayout> 

10. flag:位或运算。

     (1)属性定义:         

  
  1. <declare-styleable name="名称"> 
  2. <attr name="windowSoftInputMode"> 
  3.      <flag name = "stateUnspecified" value = "0" /> 
  4.      <flag name = "stateUnchanged" value = "1" /> 
  5.      <flag name = "stateHidden" value = "2" /> 
  6.      <flag name = "stateAlwaysHidden" value = "3" /> 
  7.      <flag name = "stateVisible" value = "4" /> 
  8.      <flag name = "stateAlwaysVisible" value = "5" /> 
  9.      <flag name = "adjustUnspecified" value = "0x00" /> 
  10.      <flag name = "adjustResize" value = "0x10" /> 
  11.      <flag name = "adjustPan" value = "0x20" /> 
  12.      <flag name = "adjustNothing" value = "0x30" /> 
  13. </attr>         
  14. </declare-styleable> 

     (2)属性使用:

            

  
  1. <activity 
  2.       android:name = ".StyleAndThemeActivity" 
  3.       android:label = "@string/app_name" 
  4.       android:windowSoftInputMode = "stateUnspecified | stateUnchanged | stateHidden"> 
  5.      <intent-filter> 
  6.         <action android:name = "android.intent.action.MAIN" /> 
  7.         <category android:name ="android.intent.category.LAUNCHER" /> 
  8.      </intent-filter> 
  9. </activity> 


注意:

属性定义时可以指定多种类型值。

(1)属性定义:

 

  
  1. <declare-styleable name = "名称"> 
  2.       <attr name = "background" format = "reference|color" /> 
  3. </declare-styleable> 

(2)属性使用:

 

  
  1. <ImageView 
  2.     android:layout_width = "42dip" 
  3.     android:layout_height = "42dip" 
  4.     android:background = "@drawable/图片ID|#00FF00" 
  5. /> 

 

下面是一个布局文件:

 

  
  1. <?xml  
  2. version="1.0" encoding="utf-8"?> 
  3. <LinearLayout  
  4. xmlns:android="http://schemas.android.com/apk/res/android" 
  5. //自定义的View的路径为com.xc.demo               
  6. xmlns:test="http://schemas.android.com/apk/res/com.xc.demo" 
  7.     android:orientation="vertical" 
  8.     android:layout_width="fill_parent" 
  9.     android:layout_height="fill_parent" 
  10.     > 
  11. <TextView   
  12.     android:layout_width="fill_parent"  
  13.     android:layout_height="wrap_content"  
  14.     android:text="@string/hello" 
  15.     /> 
  16. <com.xc.demo.MyView 
  17.     android:layout_width="fill_parent"  
  18.     android:layout_height="fill_parent"  
  19. //这里引用 改变字体和颜色 textColor和textSize都是根据前面的attrs.xml文件设置的
  20.     test:textSize="100dp" 
  21.     test:textColor="#ff0000" 
  22. /> 
  23. </LinearLayout> 

2.TypedArray的作用是在代码中设置。

  
  1. public MyView(Context context, AttributeSet attrs) { 
  2.         this(context); 
  3.          
  4.         TypedArray a = context 
  5.                 .obtainStyledAttributes(attrs, R.styleable.MyView); 
  6.         int color = a.getColor(R.styleable.MyView_textColor, 0XFF0000FF); 
  7.         float size = a.getDimension(R.styleable.MyView_textSize, 50); 
  8.          
  9.         mPaint.setColor(color); 
  10.         mPaint.setTextSize(size); 
  11.          
  12.         a.recycle(); 
  13.     } 

R.styleable.MyView是attrs.xml中<declare-styleable name="MyView">的名字

具体的设置是依靠名字+"_"+名字得到来设置的。

3.如果代码和xml中都设置了,一般以xml中设置为先。

图学习——04.HAN(异构图注意力网络) 什么是异构图,什么是元路径,什么是HAN,怎么计算attention,节点级别的attention和语义级别的attention 阅读详情

相关推荐

番外篇:ADS功放设计实战——负载与源牵引的协同优化

本文深入探讨了ADS功放设计中负载牵引与源牵引的协同优化原理及实战技巧。通过2.4GHz Wi-Fi功放等案例,详细解析了基波阻抗迭代优化、谐波调谐高级技巧及收敛判断方法,帮助工程师显著提升功放效率至78%以上。文章特别强调ADS仿真工具的正确使用方法和实际调试经验,为射频功放设计提供实用指导。

weixin_33483304的博客 342

自定义view 使用 TypedArray 获取不到配置的原因

自定义类中有 3 个构造方法; public CustomView(Context context){} public CustomView(Context context, @Nullable AttributeSet attrs){} public CustomView(Context context, @Nullable AttributeSet attrs, int defStyle...

geekqian的博客 1620

PSOC Creator 入门教程超详细

最近工作原因需要使用到赛普拉斯的一款芯片,奈何以前没有用过,所以趁这次也学习了一些简单的用法,总结一下,希望能帮到有需要朋友,因为网上关于这方面的文章少的可怜,详细点的更是少之又少!废话少说,正文开始.

qm_mq的博客 5747

解决一个 Android开发自定义控件问题,无法读取属性值

今天玩了一下Android自定义控件,是一个TextView和ImageButton的组合控件,所有的都写好了,但是运行得不到想要的结果,找了大半天找不到错误,代码如下:1、工程目录结构2、p_w_picpathbtn_with_text.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns...

weixin_34393428的博客 985

从像素到光影:解析《黑神话:悟空》中Nanite与Lumen的协同渲染革命

本文深度解析了《黑神话:悟空》如何利用Unreal Engine 5的Nanite与Lumen技术实现渲染革命。Nanite处理亿级多边形几何细节,无需传统LOD优化;Lumen提供全动态全局光照,实现实时光线反弹。两者协同工作,为游戏带来电影级视觉体验,重塑了实时渲染的技术标准与工作流程。

f6g7h8i9j的博客 425

x265探索与研究(四):如何编码视频?

如何编码视频?           本文介绍x265中的两种编码视频方法,一是采用命令行的方法;二是GUI的方式。   1、命令行的方法   (1)、第一种方式生成*.265格式的视频文件           第一种方式可以生成*.265格式的视频文件,对应的命令为: x265 --input-res 352x288 --fps 30 hall_cif_352x288_300.y

成长Bar的博客专栏 3936

(转)Android中attrs.xml文件的使用详解

来自http://blog.csdn.net/jiangwei0910410003/article/details/17006087 Android中在values中定义一个attrs.xml,然后自己定义一个组件MyView attrs.xml内容如下: [html]view plaincopy <?xmlversion="1.0"...

weixin_30651273的博客 161

37、半导体硅材料中的缺陷与吸杂技术解析

本文系统解析了半导体硅材料中的缺陷形成机制及其对电子器件性能的影响,重点探讨了生长和工艺诱导缺陷、表面与内部微缺陷的起源与特征。文章详细阐述了吸杂技术的原理、过程及在集成电路和太阳能电池制造中的应用,强调通过氧行为调控和热处理优化实现缺陷控制。同时介绍了吸杂效果的评估方法,并展望了未来新型吸杂技术的发展趋势,为提升半导体器件性能和制造良率提供理论支持和技术路径。

mongodb5scout的博客 164

自定义控件属性TypedArray和attrs.xml和AttributeSet

http://5200415.blog.51cto.com/3851969/1012267   TypedArray和attrs.xml和AttributeSet这一系列都是自定义控件属性时要用到的内容。 首先说说attrs.xml:它是定义成类似于这种形式的。 xml version="1.0" encoding="utf-8"?> resources> declare-styl

王月莹的专栏 916

RT-DETR训练前的准备,将数据集划分成训练集、测试集验证集(附完整脚本及使用说明)

在计算机视觉领域,当我们着手训练一个模型时,。其中,将数据集划分为和更是一项基础性且关键的操作。这篇博客分析了这一划分背后的原因、其重要意义以及如何通过代码实现,帮助大家更好地理解和运用这一技巧,。

Limiiiing的博客 909

【知识图谱】neo4j安装与配置_社区版_2025(附完整安装软件包)

(经历过各种版本NEO4J,遇见杂七杂八的各种问题,也看过非常多很好的教程,特此来分享一下,为大家排排坑。

知识靠谱的博客 2万+

android attrs.xml使用,Android中自定义属性(attrs.xml,TypedArray)的使用【转】

该实例是在自定义View上使用自定义属性的。先来看看源码:MyView.javaCode:package com.adnroid.test;import com.adnroid.test.R;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;impo...

weixin_36061828的博客 214

2025.06.18【转录组】|Ribo-seq/small RNA数据分析:rRNA和smRNA比对率统计全流程

本文介绍了一种自动化统计rRNA/smRNA比对率的方法,用于评估Ribo-seq或small RNA测序数据的质量。主要内容包括:分析原理(比对率定义、参考序列来源)、实践流程(构建索引、比对统计)以及结果可视化方法。通过Python和R脚本实现自动化处理,可生成汇总表格和柱状图。比对率结果能反映样品污染程度,建议控制在20%以下。该流程有助于快速评估测序质量,为后续分析提供可靠依据。文中还提供了常见问题解决方案和脚本示例,适用于生物信息学标准化质控环节。

1618

Android中自定义属性(attrs.xml,TypedArray的使用)

Android中自定义属性(attrs.xml,TypedArray的使用) 2012年05月01日 ⁄ Android 编程 ⁄ 暂无评论 ⁄ 被围观 3,975 次+ 做Android布局是件很享受的事,这得益于他良好的xml方式。使用xml可以快速有效的为软件定义界面。可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了。那么如何才能做到像官方提供的那些组...

dieshengla2331的博客 120

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

attrs.xml AttributeSet TypedArray obtainStyledAttributes

如下attrs相关内容转自:http://www.cnblogs.com/mstk/p/3575086.html 控件有很多属性,如android:id、android:layout_width、android:layout_height等,但是这些属性都是系统自带的属性。使用attrs.xml文件,可以自定义属性。本文在Android自定义控件的基础上,用attrs.xml文件

追寻梦想 405

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

TypedArray、attrs.xml、AttributeSet

ypedArray和attrs.xml和AttributeSet这一系列都是自定义控件属性时要用到的内容。 首先说说attrs.xml:它是定义成类似于这种形式的。 xml version="1.0" encoding="utf-8"?> resources>     declare-styleable name="MyView">         attr name="textColor

Yes ! ! ! 的专栏 782

andriod 获取attrs_Android中自定义属性(attrs.xml,TypedArray的使用)

做Android布局是件很享受的事,这得益于他良好的xml方式。使用xml可以快速有效的为软件定义界面。可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了。那么如何才能做到像官方提供的那些组件一样用xml来定义他的属性呢?现在我们就来讨论一下他的用法。1、添加文件attrs.xml,位于res\values目录下:1 2 3 4 5 6...

weixin_39623671的博客 251

Android中自定义属性(attrs.xml,TypedArray的使用)

Android中自定义属性,包括attrs.xml和TypedArray的介绍

j086924的专栏 870

Android中自定义属性(attrs.xml,TypedArray)的使用

Class Overview Container for an array of values that were retrieved with obtainStyledAttributes(AttributeSet, int[], int, int) or obtainAttributes(AttributeSet, int[]). Be sure to call recycl

HOT_5的专栏 750

Android TypedArray attrs.xml

自定义组件: http://marshal.easymorse.com/archives/3068   使用系统自带的属性 http://blog.csdn.net/flowingflying/article/details/6274208   &lt;resources&gt;    &lt;declare-styleable name="HelloGallery"&gt;   ...

suzsoft_yz的专栏 132
上一篇: 详解Android动画之Frame Animation
下一篇: 不同APK间的数据读取
AndroidLiuBin
博客等级 码龄15年 2粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值