在Android Studio使用自定义属性

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

步骤如下:
1 在res/values/ 下建立一个保存属性的文件attrs.xml (名称任意)
2 使用declare-styleable给自定义控件添加自定义属性
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="mTitleText" format="string"/>
<attr name="mTitleTextColor" format="color"/>
<attr name="mTitleTextSize" format="dimension"/>
<declare-styleable name="CustomStyleView">
<attr name="mTitleText" />
<attr name="mTitleTextColor" />
<attr name="mTitleTextSize" />
</declare-styleable>
</resources>
3 在布局文件中使用自定义属性:
3.1 在布局文件头中添加
xmlns:custom="http://schemas.android.com/apk/res-auto"
3.2 在自定义控件中使用自定义属性:
<com.smiling.myview.MyStyleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
custom:mTitleText="sss"
custom:mTitleTextColor="#ff0000"
custom:mTitleTextSize="40sp"
/>

4 在自定义View中获取自定义属性对应的值
public MyStyleView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
Log.i(TAG, "MyStyleView3");

/**
* 获得我们所定义的自定义样式属性
*/
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.CustomStyleView, defStyleAttr, 0);
int n = a.getIndexCount();
for (int i = 0; i < n; i++)
{
int attr = a.getIndex(i);
switch (attr)
{
case R.styleable.CustomStyleView_mTitleText:

mTitleText = a.getString(attr);

break;
case R.styleable.CustomStyleView_mTitleTextColor:
// 默认颜色设置为黑色
mTitleTextColor = a.getColor(attr, Color.BLACK);
break;
case R.styleable.CustomStyleView_mTitleTextSize:
// 默认设置为16sp,TypeValue也可以把sp转化为px
mTitleTextSize = a.getDimensionPixelSize(attr, (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP, 16, getResources().getDisplayMetrics()));
break;

}

}
a.recycle();

/**
* 获得绘制文本的宽和高
*/
mPaint = new Paint();
mPaint.setTextSize(mTitleTextSize);
// mPaint.setColor(mTitleTextColor);
mBound = new Rect();
mPaint.getTextBounds(mTitleText, 0, mTitleText.length(), mBound);

}

参考:

4 TextView的源码

android studio应用获取系统属性权限(SystemProperties),针对AS 3.4 以上版本获取SystemProperties AS项目中,当出现错误: 找不到符号 符号: 类android.os.SystemProperties,一般解决办法就是导入layoutlib.jar,得到android.os.SystemProperties类即可,下面我们详细介绍一下! Android的系统属性相当于Windows的注册表,由key和value组成,且都是核心系统的一个基本机制。相对于Windows的注册表,Android的系统属性要简单一些,它没有Windows注册表的树状结构,而只是一个列表,也就是说没有父子关系。... 阅读详情

相关推荐

android_studio如何调用自定义控件的属性的值

调用自定义属性的UI

qq_64353584的博客 1878

Android自定义属性attrs.xml、TypedArray的使用

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

Android Studio自定义activity模板

copy :从root中copy文件到我们的目标目录,比如我们的模板Activity需要使用一些图标,那么可能就需要使用copy标签将这些图标拷贝到我们的项目对应文件夹。如:activityClass=“MainActivity” ——> activity_main。如:activityClass=“Main” ——> activity_main。如:layoutName=“main” ——> MainActivity。如:activityClass=“Main” ——> item_main。

2401_89794406的博客 1571

基于android studio开发 安卓控件的基础属性1

安卓控件1. TextView控件2. Button控件2.1 控件属性2.2 控件的事件处理2.2.1 点击事件2.2.2 长按事件2.2.3 触摸事件3. EditText控件4. ImageView控件4.1 src资源4.2 scaleType属性4.3 maxHeight属性4.4 maxWidth属性4.5 adjustViewBounds属性注意事项: 1. TextView控件 设置id就可以从java内容那边取值 text设置文字内容,如果java写了被强制替换 textColor设置字

weixin_45942479的博客 984

AndroidStudio中初始项目属性介绍

示例项目 My Application1 1.所有属性 分解 .gradle文件夹 8.0: 通常,这种文件夹名称表示的是一个特定版本的 Gradle 缓存目录。数字 8.0 可能代表 Gradle 的版本号。Gradle 使用这些缓存目录来存储构建过程中生成的临时数据和其他缓存数据。这有助于加速构建过程,因为 Gradle 可以重用之前的构建输出而不是每次都从头开始。 buildOutputCleanup: 这个文件夹是用于 Gradle 的构建输出清理。Gradle 会在每次构建时检查此处

qq_43118243的博客 1601

Android Studio控件属性大全

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。

yihanss的博客 5139

Android Studio 自定义属性

自定义控件时时常使用自定义属性的操作: 一、在res/values下自定义attrs.xml文件: 自定义属性类型常用的有:string,integer,dime

woliuyunyicai的专栏 1647

使用Android Stuio自定义属性

使用Android Studio创建自定义控件的自定义属性时,需要声明命名空间, 如:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:round = "http

比你聪明的人比你更努力 641

Android Studio中xml使用自定义属性

eclipse中使用自定义属性的标签略微有电脑麻烦,而AS中统一成了如下的方式: xmlns:zidingyi="http://schemas.android.com/apk/res-auto" 当然了大量的自定义属性使用时会互相影响,于是,上面“zidingyi”部分就作为区别的作用了 注意:zidingyi要改成自己的属性标签

想到哪记到哪 3079

Android Studio使用自定义属性注意点

1.Eclipse 下使用自定义属性 先要在res 下的value目录下生成attr.xml中定义自己的属性,例如下面 <?xml version="1.0" encoding="utf-8"?> <resources> <!--引入自定义属性--> <declare-styleable name="SwitchToggleView"> <!--滑动开关背景图片属性-

小小程序员 3359

androidAndroid Studio自定义属性的定义和使用

Android Studio自定义属性的定义和使用 1.自定义属性的定义 在values文件夹下,新建attrs.xml文件,格式内容如下: 2.在布局文件的使用 命名空间的使用,这和eclipse不同 xmlns:exam="http://schemas.android.com/apk/res-auto

梦想天空 3145

【我的Android进阶之旅】解决Android Studio在XML中使用自定义View输入自定义属性的时候没有任何提示的问题

一、问题描述 这两天公司的一个年轻的小伙子在维护历史的自定义控件库的时候,发现之前开发这个自定义控件库的人员写的自定义控件,Android Studio开发的时候,在XML布局文件中无法自动提示出自定义属性,需要自己去看代码了解这个自定义控件有哪些自定义属性,然后手动的copy和paste代码。太恶心了! 经过一段时间的排查,发现之前的开发人员自定义控件的自定义属性的declare-style...

字节卷动 5853

android studio自定义属性使用

第一步: 首先在自己项目中res/values目录下创建attrs.xml文件,在此文件中写自己自定义属性,具体形式如下代码"><resources> <declare-styleable name="SettingView"> <attr name="safe_setting_title" format="string"/> <attr name="de

qq_27243969的博客 1526

Android studio下的自定义属性使用

Android studio下的自定义属性使用命名空间改为如下,其他基本一样xmlns:c=”http://schemas.android.com/apk/res-auto“

chen-sx 655

AndroidStudio自定义属性无法识别

res与res-auto的区别——AndroidStudio自定义属性xmlns无法识别问题 res与res-auto的区别 通常我们在布局文件中使用自定义属性的时候 会这样写xmlns:app=”http://schemas.android.com/apk/res/包路径”但如果你当前工程是做为lib使用,那么你如上所写 ,会出现找不到自定义属性的错误 。 这时候你就可以 写成xmlns:

kenzo0的博客 1917

安卓开发的小技巧(1)

本文由 伯乐在线 - SamLin 翻译,至秦 校稿。未经许可,禁止转载! 英文出处:Charlie。欢迎加入翻译组。 今天,我们非常高兴在博客中推出《安卓开发的小技巧》系列文章。WillowTree 的 Android 团队有一个传统:我们会把这一周的开发心得(我们称为“小技巧”)分享到 Slack 频道中。现在我们打算将那些小技巧放到博客上给大家阅读。 我们鼓励大家在一周中尽可能

u010746364的博客 348

Android Studio自定义属性访问不了的问题

一、概述 在Eclipse中对于自定义属性的引用是在根布局文件中声明一个命名空间,比如:xmlns:xxx=“http://schemas.android.com/apk/res/项目包名”。其中xxx是自己定义的,项目包名就是Manifest文件中的package。而在Android Studio中声明命名控件和在Eclipse中类似,例如:xmlns:wzq=”http://schema

小许子的博客 3430

Android Studio中styles.xml文件的使用2-2

在《Android Studio中styles.xml文件的使用2-1》中提到,默认的或者自定义的style可以控制应用程序的外观颜色。除了应用程序的外观颜色,style还可以控制控件的属性。 1 自定义style控制控件属性 创建多个属性相似的控件时,可以使用自定义style的方法。例如创建模拟键盘时,所有的按键出了显示的内容不同之外,其他属性基本相同。 1.1自定义style 在style.xml中自定义控制控件属性的style的代码,如图1所示。 图1 定义控制控件属性的style 其

hou09tian的博客 4546

android studio自定义视图

颜色四种常用的设置方式 canvas.drawColor(Color.RED);//系统颜色(Color.RED) canvas.drawColor(Color.rgb(100, 150, 200));//rgb canvas.drawColor(Color.argb(100, 100, 150, 200));//argb,其中第一参数为透明度 canvas.drawC...

NiceOyj的博客 1278
上一篇: 文件查找命令-which,whereis,locate,find
下一篇: 使用MAT查看Android内存泄露
Chase888
博客等级 码龄19年 132粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值