获取自定义主题(attr.xml)中的定义的图片(Drawable)
来源:互联网 发布:网络数据传输流程 编辑:程序博客网 时间:2024/06/05 03:27
获取自定义主题(attr.xml)中的定义的图片(Drawable)
从事安卓开发一周学到了很多东西。一个刚刚从学校毕业的菜鸟想要变成编程达人注定不是一条容易的路。争取每天写下一点工作心得或者收获。
正文:
今天在开发中需要解决一个根据当前主题Theme而变换图片的需求。 想必大家都会如何从layout设置。如下
attrs.xml
<resources> <declare-styleable name="MyTheme"> <attr name="homeyjzc" format="reference" /> //index=1 <attr name="homessgj" format="reference" /> //index=1 </declare-styleable></resources>
attrs.xml中定义了两个引用类型,其指向了Styles.xml定义的Theme。
Styles.xml
<style name="Theme3" parent="AppTheme.NoActionBar"> <item name="homessgj">@drawable/home_ssgj1</item> <item name="homeyjzc">@drawable/home_spjd1</item> </style>
重点来了:如何使用相应的图片呢?
分为两种情况:
1. layout中使用,这种情况相对简单。
android:background="?titlebg"加上一个"?" 即可指向当前Theme中的图片
2. .java文件中使用则相对麻烦一点
TypedArray a = context.obtainStyledAttributes(R.styleable.MyTheme);Drawable d = a.getDrawable(iconId); //icoid 指的是所需要的drwable在Mytheme的实际index // 回收a.recycle();
错误方法:
Drawable d = a.getDrawable(R.attr.homeyjzc); //此处并不能指向homeyjzc代表的Drawable
完成
总结:期初作者没有使用styleable,而是将"reference"直接放入attr.xml文件中,在layout中使用完全没有问题,直接调用。但是java文件中总是报错,obtainStyledAttributes()方法只适用于读取styleable中定义的attribute。
不知道各位大神有没有其他能够获取自定义style中所指向的drawable?
0 0
- 获取自定义主题(attr.xml)中的定义的图片(Drawable)
- Android 开发 Tip 2 -- 多主题下drawable.xml使用?attr的问题
- Android 5.0以下XML定义的drawable不识别?attr/属性的解决思路
- Drawable xml中图片和字体颜色的定义
- Android通过拼接名字获取drawable下的图片(根据图片名称获取在drawable中的ID)
- Android自定义控件使用attr.xml文件中的资源时在布局文件中的定义xmlns:app
- (Android日常)从.xml中获取数组中的@drawable
- 自定义xml属性attr
- Android 多主题切换 (theme + style) 及 selector/drawable 无法引用 ?attr 属性的问题
- Android 多主题切换 (theme + style) 及 selector/drawable 无法引用 ?attr 属性的问题
- Android中动态获取Drawable中的图片
- 定义xml为drawable文件并根据状态改变显示的图片资源
- Android高手之路之Android中的自定义属性attr.xml、TypedArray的使用
- select---定义在drawable文件夹中的XML文件
- Android安卓自定义圆角矩形控件,省去定义drawable里面xml的麻烦,轻松编程
- 自定义控件的属性(attr.xml,TypedArray)的使用
- Android中的图片(drawable目录;drawable和mipmap的区别)
- View的探讨(一):自定义属性(attr),XML开始到java
- ViewSwitcher和TextSwithcher打造不一样的视觉效果
- 利用Excel的vba脚本根据数据库表结构自动生成java的action,bean,dao,mode,service,xml,sql,jsp等
- Linux内存管理之mmap详解
- 字节数组和字符串相互转换
- 内存泄露从入门到精通三部曲之常见原因与用户实践
- 获取自定义主题(attr.xml)中的定义的图片(Drawable)
- Oracle执行计划不走索引的原因总结
- [leetcode]Implement Stack using Queues
- android很多图片做成帧动画造成内存溢出的解决方法。
- Python 字符串操作方法大全
- CPP中解决伪共享
- jsp页面中,<%! %>的感叹号是干什么用的?
- 漏洞:Password type input with auto-complete enabled
- 论文的语言