资源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"
  • 主题
    在定义上样式和主题基本相同,但使用的地方不同。两者区别在于:
    1. 主题通过AndroidManifest.xml中的和用在整个应用或者某个 Activity,主题对整个应用或某个Activity存在全局性影响。而样式都写在Activity布局中,用在单独的View如TextView;
    2. 主题定义的格式应该是改变窗口外观的格式:例如窗口标题、窗口边框等;
    3. 如果一个应用使用了主题应用下的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的主要内容,如果未能解决你的问题,请参考以下文章

mybatis全局配置文件

WPF 之 资源(Resource)

spring-资源访问之Resource接口

Spring5源码分析(005)——IoC篇之统一资源加载Resource和ResourceLoader

Spring5源码分析(005)——IoC篇之统一资源加载Resource和ResourceLoader

资源 之 4.4 Resource通配符路径(拾贰)