android中资源引用方式
16lz
2021-12-04
提问:
android sdk doc中提到了关于xml引用资源是如下格式:
@[<package_name>:]<resource_type>/<resource_name>
但是,在源码中也发现了如下的引用方式:
@*android:style/Theme.Dialog.Alert(\packages\apps\Settings\AndroidManifest.xml)
非常奇怪的是包名前面的那个“*”是有何作用!不可能是写错吧!搜了一下还挺多地方android包名前都添加了一个“*”符号!
答案:
Theme.Dialog.Alert
因为Alert是非public的。
使用*号的话与@的区别在于可以调用<sdk_path>\platforms\android-8\data\res\values\themes.xml中所有的已定义的theme.
而不使用*只能调用在<sdk_path>\platforms\android-8\data\res\values\public.xml中声明的样式或主题。
从某种意义上来说,没在public.xml中声明的资源是google不推荐使用的。
更多相关文章
- Android与JavaScript方法相互调用!
- Android(安卓)控件使用之SlidingDrawer
- Android源码阅读分析:Activity生命周期
- Android与H5的交互
- Android的布局和Intent笔记和常用实例
- Android旋转屏幕时阻止activity重建
- aidl
- AsyncTask源码剖析(API 23)
- 对Android(安卓)Activity添加容错处理