资源Resource之values
Posted xiong_hui_hui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了资源Resource之values相关的知识,希望对你有一定的参考价值。
常用资源文件
1、字符串资源文件:strings
<resources>
<string name="app">应用程序</string>
<string name="helloword">Hello World!</string>
</resources>
Java文件中获取方式:getResources().getString(R.string.red);
2、颜色资源文件:colors
<resources>
<color name="red">#f00</color>
<color name="green">#0f0</color>
</resources>
Java文件中获取方式:getResources().getColor(R.color.blue);
3、尺寸资源文件:dimens
<resources>
<dimen name="title">20dp</dimen>
<dimen name="content">10dp</dimen>
</resources>
Java文件中获取方式getResources().getDimension(R.dimen.title);
4、数组资源文件:arrays
android中,不推荐将数组直接定义在java文件中,而是使用数组资源文件来定义数组。
根元素:同上<resources></resources>
子元素:可以有三种。
<array></array>:称为类型数组Typed-Array资源(或者:资源数组资源)
<string-array></string-array>:字符串数组资源
<integer-array></integer-array>:整形数组资源
下级子元素:<item>数值</item>
<resources>
<string-array name="choiceItems">
<item >主屏模式</item>
<item >wifi设置</item>
<item >蓝牙设置</item>
<item >网络设置</item>
</string-array>
</resources>
Java文件中获取方式:
getResources().getStringArray(R.array.choiceItems);
<resources>
<array name="icons">
<item >@drawable/home</item>
<item >@drawable/setting</item>
<item >@drawable/logout</item>
</array>
<array name="title">
<item >首页</item>
<item >设置</item>
<item >退出</item>
</array>
</resources>
Java文件中获取方式:
TypedArray arrIcons =getResources().obtainTypedArray(R.array.icons); Drawable drawable = arrIcons.getDrawable(0); arrIcons.recycle();
5、样式/主题资源文件:styles
- 样式
将一些常用的属性组合成样式,便于重复使用,减少给View控件指定类似属性的重复工作。Android Style类似网页设计中的级联样式CSS设计思路,可以让设计与内容分离,并且可以方便的继承、覆盖、重用。
<color name="Black">#000000</color>
<style name="popup_baseStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_gravity">center</item>
<item name="android:textColor">@color/Black</item>
</style>
//1.通过parent属性继承
<style name="popup_box_tv" parent="popup_baseStyle">
<item name="android:layout_width">0dp</item>
<item name="android:layout_weight">1</item>
</style>
//2.通过style命名规则继承
<style name="popup_baseStyle.A">
<item name="android:layout_width">0dp</item>
</style>
在布局的View中使用样式:
<TextView style = "@style/popup_box_tv"
- 主题
在定义上样式和主题基本相同,但使用的地方不同。两者区别在于:
- 主题通过AndroidManifest.xml中的和用在整个应用或者某个 Activity,主题对整个应用或某个Activity存在全局性影响。而样式都写在Activity布局中,用在单独的View如TextView;
- 主题定义的格式应该是改变窗口外观的格式:例如窗口标题、窗口边框等;
- 如果一个应用使用了主题应用下的view也使用了样式,当主题与样式属性发生冲突时,样式的优先级高于主题。(也就是谁最靠近UI控件,谁起作用)
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
</style>
在AndroidManifest.xml中引用主题:
<activity android:theme="@style/CustomTheme">
6、自定义属性文件:attrs
<declare-styleable name="ImageButtonWithText">
<attr name="text_img" format="string"/>
<attr name="textSize_img" format="dimension"/>
<attr name="textColor_img" format="color"/>
</declare-styleable>
Java文件中获取方式:
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ImageButtonWithText, 0, defStyle);
string s =a.getText(R.styleable.ImageButtonWithText_text_img);
a.recycle();
以上是关于资源Resource之values的主要内容,如果未能解决你的问题,请参考以下文章
Spring5源码分析(005)——IoC篇之统一资源加载Resource和ResourceLoader