位置: 编程技术 - 正文

Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用(android 自定义dialog)

编辑:rootadmin

推荐整理分享Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用(android 自定义dialog),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android自定义控件步骤,安卓自定义,android 自定义dialog,android 自定义view三个方法,android自定义样式,android 自定义dialog,android自定义属性详解,android自定义属性详解,内容如对您有帮助,希望把文章链接给更多的朋友!

转自: 文件里定义控件的属性,我们已经习惯了android:attrs="" ,那么我们能不能定义自己的属性能,比如:test:attrs="" 呢?答案是肯定的.

进入主题。大致以下步骤:

一、 在res/values 文件下定义一个attrs.xml 文件.代码如下:

<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="MyView"> <attr name="textColor" format="color" /> <attr name="textSize" format="dimension" /> </declare-styleable> </resources>

二、 我们在MyView.java 代码编写如下,其中下面的构造方法是重点,我们获取定义的属性R.sytleable.MyView_textColor, 获取方法中后面通常设定默认&#;(float textSize = a.getDimension(R.styleable.MyView_textSize, ); ), 防止我们在xml 文件中没有定义.从而使用默认&#;!

MyView 就是定义在<declare-styleable name="MyView "></declare-styleable> 里的 名字,获取里面属性用 名字_ 属性 连接起来就可以.TypedArray 通常最后调用 .recycle() 方法,为了保持以后使用该属性一致性!

public MyView(Context context,AttributeSet attrs) { super(context,attrs); mPaint = new Paint(); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyView); int textColor = a.getColor(R.styleable.MyView_textColor, 0XFFFFFFFF); float textSize = a.getDimension(R.styleable.MyView_textSize, ); mPaint.setTextSize(textSize); mPaint.setColor(textColor); a.recycle(); } Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用(android 自定义dialog)

MyView.java MyView控件全部代码如下:

package com.android.tutor; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.Paint.Style; import android.util.AttributeSet; import android.view.View; public class MyView extends View { private Paint mPaint; private Context mContext; private static final String mString = "Welcome to Mr Wei's blog"; public MyView(Context context) { super(context); mPaint = new Paint(); } public MyView(Context context,AttributeSet attrs) { super(context,attrs); mPaint = new Paint(); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyView); int textColor = a.getColor(R.styleable.MyView_textColor, 0XFFFFFFFF); float textSize = a.getDimension(R.styleable.MyView_textSize, ); mPaint.setTextSize(textSize); mPaint.setColor(textColor); a.recycle(); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); //设置填充 mPaint.setStyle(Style.FILL); //画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标 canvas.drawRect(new Rect(, , , ), mPaint); mPaint.setColor(Color.BLUE); //绘制文字 canvas.drawText(mString, , , mPaint); } }

三、将我们自定义的MyView 加入布局main.xml 文件中,并且使用自定义属性,自定义属性必须加上:

" xmlns:test =" ,test是自定义属性的前缀, com.android.tutor 是我们包名.

main.xml 全部代码如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" xmlns:test=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <com.android.tutor.MyView android:layout_width="fill_parent" android:layout_height="fill_parent" test:textSize="px" test:textColor="#fff" /> </LinearLayout>

四、运行之效果如下图:

设置软键盘搜索键以及监听搜索键点击 设置软键盘搜索键以及监听搜索键点击1.LinearLayoutxmlns:android=

说说Android 两种为自定义组件添加属性的使用方法和区别 转自:

Android五天乐(第三天)ListFragment与ViewPager 1ListFragment今天首先学习了一种非常常用的展示场景:列表展示。昨天学习了使用Fragmet来代替activity进行设计,今天在托管单个fragment的基础上,掌握托

标签: android 自定义dialog

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

上一篇:android加载大图片(android 加载大图)

下一篇:设置软键盘搜索键以及监听搜索键点击(键盘搜索的快捷键)

  • 企业所得税法允许税前扣除的费用划分为
  • 房产税从价改从租,多缴税款要加收滞纳金吗
  • 小企业会计准则是什么意思
  • 建筑业无票支出
  • 工程施工计入资产负债表
  • 第二季度是多少钱
  • 利润表里的所得税怎么算
  • 资产损失税前扣除及纳税调整明细
  • 收到补价时应确认收益,支付补价时不能确认收益
  • 低值易耗品摊销借贷方向
  • 医疗器械行业进销存软件
  • 员工离职后收取客户钱款
  • 挂靠管理费有收税前还是收税后?
  • 内退人员工资标准
  • 应交税费包括了增值税吗
  • 电子票据查询打印
  • 危险废物处置是冶金行业吗
  • 建安企业收取管理费虚开怎么处理
  • 个税手续费返还要交企业所得税吗
  • 经营性资产和非经济资产
  • linux用在哪些方面
  • 购买礼品的会计科目
  • PHP:xml_set_external_entity_ref_handler()的用法_XML解析器函数
  • css 栅格
  • PHP:mb_stristr()的用法_mbstring函数
  • 增值税发票月末怎么账务处理
  • Chat GPT实用案例——VUE+Chat GPT实现聊天功能教程
  • 外贸企业退运后的进项税如何处理
  • 专票认证后可以不抵扣吗
  • 计算机网络的定义
  • css经典面试题
  • 未来社区政策支持
  • yolo训练教程
  • css3的模块结构和应用
  • msg文件怎么创建
  • 物业收取停车费需要业主同意吗
  • 预扣预缴申报未缴税款
  • java中的变量
  • 土地使用权是指企业所拥有的
  • 企业对外付汇怎么交税
  • 固定资产盘点方案
  • 个税申报更正申报如何操作
  • 劳务费走应付职工薪酬
  • 企业变更法人的原因怎么写
  • 原材料的帐务处理
  • 员工工作服扣款
  • 财产租赁合同印花税申报期限
  • 退货销售折让会计分录
  • 已付款未认证发票怎么做账
  • 最新版的电子发票没有章
  • 管家婆进货单怎么录入?
  • 营改增涉及哪些项目
  • 增值税专用发票丢了怎么补救
  • 营业费用和营业支出
  • 票据粘贴处怎么粘
  • 技术合同免税备案流程
  • 研发一个月多少钱
  • Vista下WMC不能播放RMVB解决办法
  • win10系统怎么看驱动
  • 设置共享时可使用的权限
  • 如何在ubuntu下安装和配置gcc并用C语言
  • WIN10系统中WPS字体颜色浅
  • hyper-v以后安装操作系统
  • egui.exe是什么进程
  • linux连接windows的服务redis
  • wind10手机版
  • jQuery实现非常实用漂亮的select下拉菜单选择效果
  • ubuntu系统怎么安装
  • jquery常用
  • nodejs全栈前景
  • 利用Matplotlib对一组数据进行分析
  • unity的协程
  • ecmascript6 官方文档
  • npm 发布组件
  • jquery鼠标移入移出切换图片
  • python的redis
  • javascript的对象
  • 企业欠税交不起怎么办
  • 四川省地方税务局公告2018年第3号
  • 买二手房土地证怎么过户
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设