• Android开发(四)——Android中的颜色


    Android开发中关于资源文件的存储操作。对于Android资源也是非常重要的,主要包括文本字符串(strings)、颜色(colors)、数组(arrays)、动画(anim)、布局(layout)、图像和图标(drawable)、音频视频(media)和其他应用程序使用的组件。

    资源目录:

    目录

    存放的资源

    /res/anim/ 存放定义补间动画的XML文件
    /res/color/ 存放定义不同状态下颜色列表的XML文件
      /res/drawable/

    该目录下存放各种位图文件(如*.png、*.9.png、*.jpg*、.gif)等,除此之外还可是编译成如下各种Drawable对象的XML文件:

    BitmapDrawable

    NinePatchDrawable对象

    StateListDrawable对象

    ShapeDrawable对象

    AnimationDrawable对象

    Drawable的其它各种子类的对象

    /res/layout/ 存放各种用户界面的布局文件
    /res/menu/ 存放为应用程序定义各种菜单的资源,包括选项菜单、子菜单、上下文菜单资源
    /res/raw/ 该目录下存放任意类型的原生资源。在java代码中通过调用Resource对象的openRawResource(int id)方法获取该资源的二进制输入流。

    实际上,如果应用程序使用原生资源,推荐把这些原生资源保存到/assrts目录下,然后在应用程序中使用AssetManager来访问这些资源。

    /res/values/  存放各种简单的XML文件。这些简单值包括字符串值、整数值、颜色值、数组等。

    字符串、整数值、颜色值、数组等各种值都是存放在该目录下,而且这些资源文件的根目录都是<resources.../>元素,当我们为该<resource.../>元素添加不同的子元素则代表不同的资源,例如:

    string/integer/bool子元素:代表添加一个字符串值/整数值/boolean值

    color子元素:代表添加一个颜色值

    array子元素或string-array、int-array子元素:代表添加一个数组

    style子元素:代表添加一个样式

    dimen:代表添加一个尺寸

    由于各种简单值都可以定义在/res/values/目录下的资源文件中,如果在同一份资源文件中定义各种值,势必增加程序维护的难度。为此,Android建议使用不同的文件来存放不同类型的值:

    arrays.xml:定义数组资源

    colors.xml:定义颜色值资源

    dimens.xml:定义尺寸值资源

    strings.xml:定义字符串资源

    styles.xml:定义样式资源

    /res/xml/ 任意的原声XML文件。这些XML文件可在java代码中使用Resources.getXML()访问。

    资源的相关类:

    int getColor(int id)  //对应res/values/colors.xml 
      
    Drawable getDrawable(int id) //对应res/drawable/
    
    XmlResourceParser getLayout(int id) //对应res/layout/
    
    String getString(int id) 和CharSequence getText(int id) //对应res/values/strings.xml
    
    InputStream openRawResource(int id) //对应res/raw/
    
    void parseBundleExtra (String tagName, AttributeSet attrs, Bundle outBundle) //对应res/xml/
    
    String[] getStringArray(int id) //对应res/values/arrays.xml
    
    float getDimension(int id) //对应res/values/dimens.xml

    1. 字符串:/res/values/strings.xml

    String str = getResources().getString(R.string.hello); 
    CharSequence cha = getResources().getText(R.string.app_name);


    2.字符串数组:/res/values/arrays.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name="flavors">
            <item>Vanilla</item>
            <item>Chocolate</item>
            <item>Strawberry</item>
        </string-array>
    </resources>
    String strs[] = getResources().getStringArray(R.array.flavors);

    3.颜色值:/res/values/colors.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="text_color">#F00</color>    
    </resources>
    getResources().getColor(R.color.code_sended)

    4.尺寸值:/res/values/dimens.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <dimen name="txt_app_title">22sp</dimen>
        <dimen name="font_size_10">10sp</dimen>
        <dimen name="font_size_12">12sp</dimen>
        <dimen name="font_size_14">14sp</dimen>
        <dimen name="font_size_16">16sp</dimen>
    </resources>
    float myDimen = getResources().getDimension(R.dimen.dimen标签name属性的名字);

    5.简单的Drawable图形:/res/drawable/drawables.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <resources>
        <drawable name="red_rect">#F00</drawable>
    </resources>
    ColorDrawable myDraw = (ColorDrawable)getResources().getDrawable(R.drawable.red_rect);

    参考:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0204/838.html

  • 相关阅读:
    1058 A+B in Hogwarts (20分)
    我的Vue之小功能统计
    H5如何用Canvas画布生成并保存带图片文字的新年快乐的海报
    微信小程序之特殊效果及功能
    移动端H5适配方法(盒子+图片+文字)
    5分钟教你3种实现验证码功能
    微信小程序动态生成保存二维码
    微信授权获取code(微信支付)
    H5微信自定义分享链接(设置标题+简介+图片)
    带你走近WebSocket协议
  • 原文地址:https://www.cnblogs.com/ccdc/p/4424554.html
Copyright © 2020-2023  润新知