zoukankan      html  css  js  c++  java
  • 使用字符串、颜色、尺寸资源

    字符串资源、颜色资源、尺寸资源,它们对应的 XML 文件都将位于/res/values 目录下, 它们默认的文件名,以及在 R 类中对应的内部类如下所示:
     
     
    不过其中的默认文件名称是可以修改的。
    示例代码如下:
    main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal"
        >
    <!-- 使用字符串资源,尺度资源 -->
    <TextView  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/app_name"
        android:gravity="center"
        android:textSize="@dimen/title_font_size"
    />
    <!-- 定义一个GridView组件,使用尺度资源中定义的长度来指定水平间距、垂直间距 -->
    <GridView  
        android:id="@+id/grid01"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:horizontalSpacing="@dimen/spacing"
        android:verticalSpacing="@dimen/spacing"
        android:numColumns="3"
        android:gravity="center">
    </GridView>
    </LinearLayout>
    资源文件的名称是可以修改,当然也可以定义多个相同类型的资源文件,但注意所有的资源文件都是以<resources>为根目录的,至于里面的类型则为对应的color,demen,integer,string,boolean等,这些标签是不能更改的,编译器根据这些来生成R.java中的类。
    color3.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="c1">#F00</color>
        <color name="c2">#0F0</color>
        <color name="c3">#00F</color>
        <color name="c4">#0FF</color>
        <color name="c5">#F0F</color>
        <color name="c6">#FF0</color>
        <color name="c7">#07F</color>
        <color name="c8">#70F</color>
        <color name="c9">#F70</color>
    </resources>
    dimens.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <dimen name="spacing">8dp</dimen>
        <!-- 定义GridView组件中每个单元格的宽度、高度 -->
        <dimen name="cell_width">60dp</dimen>
        <dimen name="cell_height">66dp</dimen>
        <!-- 定义主程序的标题的字体大小 -->
        <dimen name="title_font_size">18sp</dimen>
    </resources>
    integers.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <integer name="font_size">20</integer>
    </resources>
    strings.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="hello">Hello World, ValuesResTest!</string>
        <string name="app_name">字符串、数字、尺寸资源</string>
        <string name="c1">F00</string>
        <string name="c2">0F0</string>
        <string name="c3">00F</string>
        <string name="c4">0FF</string>
        <string name="c5">F0F</string>
        <string name="c6">FF0</string>
        <string name="c7">07F</string>
        <string name="c8">70F</string>
        <string name="c9">F70</string>    
    </resources>
    ValueResTest.java
    package org.crazyit.res;
    
    import android.app.Activity;
    import android.content.res.Resources;
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.GridView;
    import android.widget.TextView;
    
    /**
     * Description:
     * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a>
     * <br/>Copyright (C), 2001-2014, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class ValuesResTest extends Activity
    {
        // 使用字符串资源
        int[] textIds = new int[]
        {
            R.string.c1 , R.string.c2 , R.string.c3 ,
            R.string.c4 , R.string.c5 , R.string.c6 ,
            R.string.c7 , R.string.c8 , R.string.c9
        };
        // 使用颜色资源
        int[] colorIds = new int[]
        {
            R.color.c1 , R.color.c2 , R.color.c3 ,
            R.color.c4 , R.color.c5 , R.color.c6 ,
            R.color.c7 , R.color.c8 , R.color.c9
        };
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            // 创建一个BaseAdapter对象
            BaseAdapter ba = new BaseAdapter()
            {
                @Override
                public int getCount()
                {
                    // 指定一共包含9个选项
                    return textIds.length;
                }
    
                @Override
                public Object getItem(int position)
                {
                    // 返回指定位置的文本
                    return getResources().getText(textIds[position]);
                }
    
                @Override
                public long getItemId(int position)
                {
                    return position;
                }
                // 重写该方法,该方法返回的View将作为的GridView的每个格子
                @Override
                public View getView(int position
                    , View convertView, ViewGroup parent)
                {
                    TextView text = new TextView(ValuesResTest.this);
                    Resources res = ValuesResTest.this.getResources();
                    // 使用尺度资源来设置文本框的高度、宽度
                    text.setWidth((int) res.getDimension(R.dimen.cell_width));
                    text.setHeight((int) res.getDimension(R.dimen.cell_height));
                    // 使用字符串资源设置文本框的内容
                    text.setText(textIds[position]);
                    // 使用颜色资源来设置文本框的背景色
                    text.setBackgroundResource(colorIds[position]);
                    text.setTextSize(20);
                    text.setTextSize(getResources()
                        .getInteger(R.integer.font_size));
                    return text;
                }
            };
            GridView grid = (GridView)findViewById(R.id.grid01);
            // 为GridView设置Adapter
            grid.setAdapter(ba);
        }
    }
    编译器自动生成的R.java文件:
    /* AUTO-GENERATED FILE.  DO NOT MODIFY.
     *
     * This class was automatically generated by the
     * aapt tool from the resource data it found.  It
     * should not be modified by hand.
     */
    
    package org.crazyit.res;
    
    public final class R {
        public static final class attr {
        }
        public static final class color {
            public static final int c1=0x7f040000;
            public static final int c2=0x7f040001;
            public static final int c3=0x7f040002;
            public static final int c4=0x7f040003;
            public static final int c5=0x7f040004;
            public static final int c6=0x7f040005;
            public static final int c7=0x7f040006;
            public static final int c8=0x7f040007;
            public static final int c9=0x7f040008;
        }
        public static final class dimen {
            public static final int cell_height=0x7f050002;
            /**  定义GridView组件中每个单元格的宽度、高度
             */
            public static final int cell_width=0x7f050001;
            public static final int spacing=0x7f050000;
            /**  定义主程序的标题的字体大小
             */
            public static final int title_font_size=0x7f050003;
        }
        public static final class drawable {
            public static final int ic_action_search=0x7f020000;
            public static final int ic_launcher=0x7f020001;
        }
        public static final class id {
            public static final int grid01=0x7f080000;
        }
        public static final class integer {
            public static final int font_size=0x7f060000;
        }
        public static final class layout {
            public static final int main=0x7f030000;
        }
        public static final class string {
            public static final int app_name=0x7f070001;
            public static final int c1=0x7f070002;
            public static final int c2=0x7f070003;
            public static final int c3=0x7f070004;
            public static final int c4=0x7f070005;
            public static final int c5=0x7f070006;
            public static final int c6=0x7f070007;
            public static final int c7=0x7f070008;
            public static final int c8=0x7f070009;
            public static final int c9=0x7f07000a;
            public static final int hello=0x7f070000;
        }
    }
    及BuildConfig.java:
    /** Automatically generated file. DO NOT MODIFY */
    package org.crazyit.res;
    
    public final class BuildConfig {
        public final static boolean DEBUG = true;
    }
    屏幕截图:
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    Java中List和ArrayList的区别(转)
    Java的JDBC事务详解(转)
    Java JDBC批处理插入数据操作(转)
    celery入门
    Python装饰器与面向切面编程
    python 中类方法@classmethod
    Virtualenv: 一个Python环境管理工具(windown版本)
    python操作excel之 模块 xlrd
    django多条件筛选搜索(项目实例)
    jQuery选择器总结
  • 原文地址:https://www.cnblogs.com/AndyGe/p/3436879.html
Copyright © 2011-2022 走看看