位置: 编程技术 - 正文

Android自定义属性时TypedArray的使用方法(android 自定义dialog)

编辑:rootadmin
有时候android传统的页面布局不足以满足我们的需求,常常需要自己定义view,通常继承View,然后重写构造方法以及onDraw等函数,再具体实现自己定义的复杂view。我们知道在给控件赋属性时,通常使用的是android系统自带的属性,比如 android:layout_height="wrap_content",除此之外,我们亦可以自己定义属性,这样在使用的时候我们就可以使用形如 myapp:myTextSize="sp"的方式了,步骤大致如下:1》在项目文件res/value下面创建一个attr.xml文件,该文件中包含若干个attr集合,例如:[html]<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="MyView"> <attr name="myTextSize" format="dimension"/> <attr name="myColor" format="color"/> </declare-styleable> </resources> 其中resource是跟标签,可以在里面定义若干个declare-styleable,<declare-styleable name="MyView">中name定义了变量的名称,下面可以再自定义多个属性,针对<attr name="myTextSize" format="dimension"/>来说,其属性的名称为"myTextSize",format指定了该属性类型为dimension,只能表示字体的大小。format还可以指定其他的类型比如;reference 表示引用,参考某一资源IDstring 表示字符串color 表示颜色&#;dimension 表示尺寸&#;boolean 表示布尔&#;integer 表示整型&#;float 表示浮点&#;fraction 表示百分数enum 表示枚举&#;flag 表示位运算 2》在使用到该自定义view的布局文件中键入如下的一行:绿色是自己定义属性的前缀名字,粉色是项目的包名,这样一来,在我们自己定义的view的属性中,就可以使用自己在attr中定义的属性啦,例如:[html] <LinearLayout xmlns:android=" xmlns:myapp=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <com.eyu.attrtextdemo.MyView android:layout_height="wrap_content" android:layout_width="wrap_content" myapp:myTextSize="sp" myapp:myColor="#"/> </LinearLayout> 3》在自定义view的代码中引入自定义属性,修改构造函数context通过调用obtainStyledAttributes方法来获取一个TypeArray,然后由该TypeArray来对属性进行设置obtainStyledAttributes方法有三个,我们最常用的是有一个参数的obtainStyledAttributes(int[] attrs),其参数直接styleable中获得TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.MyView);调用结束后务必调用recycle()方法,否则这次的设定会对下次的使用造成影响 具体如下:[java] package com.eyu.attrtextdemo; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Paint.Style; import android.util.AttributeSet; import android.view.View; public class MyView extends View{ public Paint paint; public MyView(Context context, AttributeSet attrs) { super(context, attrs); paint = new Paint(); TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.MyView); int textColor = a.getColor(R.styleable.MyView_myColor, ); float textSize = a.getDimension(R.styleable.MyView_myTextSize, ); paint.setTextSize(textSize); paint.setColor(textColor); a.recycle(); } public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } @Override www.2cto.com protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); paint.setStyle(Style.FILL); canvas.drawText("aaaaaaa", , , paint); } } 运行后:

推荐整理分享Android自定义属性时TypedArray的使用方法(android 自定义dialog),希望有所帮助,仅作参考,欢迎阅读内容。

Android自定义属性时TypedArray的使用方法(android 自定义dialog)

文章相关热门搜索词:android 自定义actionbar,android 自定义dialog,android自定义属性详解,android 自定义,android自定义属性attr,Android自定义属性名相同format不同,android自定义属性详解,Android自定义属性名相同format不同,内容如对您有帮助,希望把文章链接给更多的朋友!

Android使用JNI(从java调用本地函数) 当编写一个混合有本地C代码和Java的应用程序时,需要使用Java本地接口(JNI)作为连接桥梁。JNI作为一个软件层和API,允许使用本地代码调用Java对象的

Android - DrawerLayout的使用 AndroidDrawerLayout的使用。从屏幕的左右边缘开始拖动,能拖出一个新的视图。activity_main.xmlandroid.support.v4.widget.DrawerLayoutxmlns:android=

Android开发:StaggeredGridView瀑布流控件运行异常崩溃解决方法 StaggeredGridView是github上一个开源的瀑布流图片库,本文将分享集成StaggeredGridView时碰到的异常以及解决方法,StaggeredGriedView开源地址为:

标签: android 自定义dialog

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

上一篇:android开发运行程序出现stop(android开发程序)

下一篇:Android使用JNI(从java调用本地函数)(Android使用的方式来管理)

  • PHP:JewishToJD()的用法_日历函数

    PHP:JewishToJD()的用法_日历函数

  • 谈谈sqlserver自定义函数与存储过程的区别(sql自定义)

    加入一笔记录到表bankMoney,并查询此表中userID= Zhangsan的所有存款的总金额。

    在这里再??乱幌麓娲⒐?痰?种传回值(方便正在看这个例子的朋友不用再去查看语法内容):1.以Return传回整数2.以output格式传回参数3.Recordset

    传回值的区别:

    output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中。实例3:使用带有复杂 SELECT 语句的简单过程  下面的存储过程从四个表的联接中返回所有作者(提供了姓名)、出版的书籍以及出版社。该存储过程不使用任何参数。

    实例4:使用带有参数的简单过程

    实例5:使用带有通配符参数的简单过程

    实例6:if...else存储过程,其中@case作为执行update的选择依据,用if...else实现执行时根据传入的参数执行不同的修改.

    深入分析SqlServer查询计划 对于SQLServer的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题,因此本文只谈优化查询时如何看懂SQ

    sql 判断字符串中是否包含数字和字母的方法 判断是否含有字母selectPATINDEX('%[A-Za-z]%',‘ads')=0(如果存在字母,结果1)判断是否含有数字PATINDEX('%[0-9]%',‘sdf" class="img-responsive" alt="谈谈sqlserver自定义函数与存储过程的区别(sql自定义)">

    谈谈sqlserver自定义函数与存储过程的区别(sql自定义)

  • bootconf.exe进程是什么(boot from)

    bootconf.exe进程是什么(boot from)

  • 通过奇兔刷机修复xp系统无法连上160wifi问题(奇兔刷机可以救砖吗)

    通过奇兔刷机修复xp系统无法连上160wifi问题(奇兔刷机可以救砖吗)

  • 轻松创建nodejs服务器(4):路由(搭建nodejs)

    轻松创建nodejs服务器(4):路由(搭建nodejs)

  • Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案(python的idle打不开解决办法)

    Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案(python的idle打不开解决办法)

  • Bootstrap每天必学之表格(bootstrap入门)

    Bootstrap每天必学之表格(bootstrap入门)

  • python抓取并保存html页面时乱码问题的解决方法(python抓视频保存本地)

    python抓取并保存html页面时乱码问题的解决方法(python抓视频保存本地)

  • 会计新手如何学会收款流程
  • 利润总额亏损还有没有所得税
  • 核定征收三种方式
  • 公司贷款可以转私人吗
  • 个人所得税申报错误如何更正申报
  • 金税盘服务费怎么抵扣税
  • 计提利息收入分录怎么写
  • 补缴房产税有滞纳金吗
  • 安置残疾人加计扣除
  • 计提固定资产折旧,车间使用的固定资产折旧1400
  • 以货换货违法吗
  • 应交税金进项税的会计分录
  • 长期借款利息按月计提按季支付
  • 工程施工购买的标示牌怎么开票给甲方
  • 计划成本法下会计分录
  • 理财收益高的产品
  • 过期没有进行申报印花税会怎样
  • 停车场吗
  • 技术开发合同免征企业所得税吗
  • 刚升级一般纳税人可以申请贷款吗
  • 出口加工区内企业可经营什么业务
  • 一般纳税人出售不动产增值税税率是多少
  • 长期待摊费用提前清理
  • 没有走公户的发票费用怎么做账
  • 最新w10系统专业版
  • 六月雪的养殖方法和注意事项
  • 软件远程调用失败是什么意思
  • 购买的办公电脑怎么入账
  • 已经提完折旧的设备改造
  • 诈骗犯查询
  • 个税的适用税率有哪些
  • 轻薄本拆卸
  • 已提减值准备的固定资产报废怎么填写
  • 固定资产折旧怎么做账务处理
  • 增值税缓交政策
  • 前端vscode配置
  • transformer中的参数
  • react redux reducer
  • thinkphp d方法
  • 公司账户转账给个人要交税吗
  • 工会经费是应付职工薪酬的借方还是贷方
  • python中类的属性
  • ubuntu下使用SQLite3的基本命令
  • 购进已经折旧提完的二手车
  • 一次性伤残补助金怎么查询进度
  • mysql密码忘了咋办
  • 企业营业外收入有哪些
  • 发票种类包括
  • 长期股权投资中级会计例题
  • 股东以固定资产投资要交增值税?
  • 购礼品送客户分账务处理怎么做
  • 来料加工账务处理案例
  • 合资公司股东如何退股
  • 应收利息可以计提坏账准备吗
  • 资产减值后折旧怎么算
  • 公司固定资产明细表
  • 本月增值税申报截止日
  • 利润分配的借方表示增加还是减少
  • 会计信息质量特征哪个最重要
  • 配置是什么意思
  • windows7/vista/server(no slic)
  • utilman.exe - utilman是什么进程
  • 右下角小喇叭调不了声音
  • win7把声音设备禁用了怎么要回来
  • win8系统启动项在哪
  • xp双系统怎么切换系统
  • 在windowsxp的应用程序中,经常有一些菜单选项呈暗灰色
  • information_schema翻译
  • win10系统出现蓝屏
  • 清除文件内容 linux
  • 不要使用CSS Expression的原因分析
  • 物理引擎百科
  • unity接收udp
  • python数字运算规则
  • js判断div是否存在
  • python多进程数量限制
  • js模拟点击alert()确定
  • 小规模纳税人开1%普票怎么报税
  • 山东税务申报如何网上申报
  • 河北省社保证明网上查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设