• Android应用的资源


    资源文件在Android Studio 中自动创建到res目录下,下面进行详细介绍。

    一、字符串资源

    1、定义字符串资源文件:

      写在res/values/strings.xml文件中的<string>里。

    2、使用字符串资源

    ① 在XML文件中 @string/stringname

    ② 在Java文件中,获取资源并设置到当前的imageView中。

    imageView.setText(getResources().getString(R.string.stringname));

    二、颜色资源

    1、定义:

    其中,每一项都有1或2位0~F的十六进制组成,其中,透明度这项可以省略。

    同时,Android Studio为我们提供了更简便的获取颜色办法。

     2、颜色资源文件

    ① 定义颜色资源文件

    写在res/values/colors.xml文件中的<color>里。

    ② 使用颜色资源

      ① 在XML文件中 @color/stringname

      ② 在Java文件中,获取资源并设置到当前的TextView中。

    //要求最小sdk版本23
    textView.setTextColor(getColor(R.color.colorname));
    //下面常用
    textView.setBackground(getResources().getColor(R.color.bgcolor));

    三、尺寸资源

    Android中常用的尺寸单位为dp和sp,为可伸缩像素。

    dp:常用来作为边距和组件大小的单位。

    sp:常用来作为字体大小的单位。

    ① 定义尺寸资源文件

    写在res/values/dimens.xml文件中的<dimen>里。在新版本Android Studio中不自动生成,可以手动添加。

    ② 使用尺寸资源

      ① 在XML文件中 @dimen/dimenname

      ② 在Java文件中,获取资源并设置到当前的TextView中。

    textView.setTextSize(getResources().getDimension(R.dimen.dimenname));

    四、布局资源

    ① 定义尺寸资源文件

    写在res/layout文件下。

    ② 使用尺寸资源

      ① 在XML文件中 ,适用于一个布局文件需要包含另一个布局文件的情况下。

    <include layout="@layout/name"></include>

      ② 在Java文件中,通过 setContentView(R.layout.name)完成。

    五、数组资源

    ① 定义尺寸资源文件

    写在res/values文件下,由于Android Studio没有自动创建,所以需要手动创建。

    主要有三个子元素可供数组资源定义,分别是:

      ① <array>子元素:内容可以是颜色,字符串,尺寸资源。

      ② <integer-array>子元素:整型数组

      ③  <string-array>子元素:字符串数组

    定义如下:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name="listitem">
            <item>字符串1</item>
            <item>字符串2</item>
            <item>字符串3</item>
        </string-array>
    </resources>

    ② 使用尺寸资源

      ① 在XML文件中 ,一般用于下拉列表或列表视图中。

        例如在ListView中:

    <ListView
        entries="@array/listitem" />

      ② 在Java文件中,通过 setContentView(R.layout.name)完成。

    String[] arr = getResource().getStringArray(R.array.listitem);

    六、drawable资源

    不仅包括图片资源(图像文件、9patch,shape,StateListDrawable),也包括一些xml文件,也叫做StateListDrawable资源。

    注意,Android中不允许图片资源的文件名中出现大写字母,且不能以数字开头。

    StateListDrawable资源

    是定义在xml文件中的Drawable对象,根据状态呈现不同的界面。

     创建文件edittext_focused.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
            <!--  state下,提供了很多状态,这里选用的焦点的得到或失去  -->
        <item android:state_focused="true" android:color="#f60"/>
        <item android:state_focused="false" android:color="#0a0"/>
    </selector>

     在xml文件中使用 :@drawable/edittext_focused。

    七、mipmap资源

    定义:主要是保存icon图片,应用程序的启动图标,加载渲染速度更快。

    其他方面与drawable大致相同。

    八、主题资源

    。定义:主题资源是指定义界面主题的资源,设置窗口的整体样式,改变所有窗口外观的资源,在Android Studio 中通过这样可以找到默认添加的主题资源。

    有很多主题风格可供选择,可以自己探索。

    除了这些系统自带的资源,我们也可以自定义主题资源。

    如何使用资源文件?

    1、创建主题资源

    Android Studio res/values/style.xml文件中的<resource>中插入如下代码。

    <style name="bgTheme" parent="@style/AppTheme">
            <!-- 设置不显示标题栏为false,即显示标题栏 -->
            <item name="android:windowNoTitle">false</item>
            <!--设置背景图片-->
            <item name="android:windowBackground">@drawable/img05</item>
    </style>

    2、使用主题资源

    ① AndroidManifest.xml中使用

    我们可以为整个app设置主题,使用<application>下的<theme>,更改为我们写好的主题即可。

    ② Java中使用

    //主题资源设置在contentView前面
    setTheme(R.style.bgTheme);
    setContentView(R.layout.activity_main);

    九、样式资源

    主要用来设置不同的文字样式,颜色大小风格等。

    主题和样式同样都设置在style.xml文件中,区别是:主题是设置整个APP或窗口的样式,而该资源是设置组件的样式。

    <!--可以自定义名称-->
        <style name="title">
            <item name="android:textSize">30sp</item>
            <item name="android:textColor">#06F</item>
        </style>

    可在布局xml文件中设置样式。

    <style="@style/title">

    同时,有个继承样式需要注意,例如该content继承自之前的title。

        <style name="content" parent="title">
            <item name="android:textSize">16sp</item>
         <item name="android:textStyle">bold</item>
         <item name="android:layout_gravity">center_horizontal</item>
      </style>

    这里content具备title的所有属性,但若在content中重新定义了textSize,则以该定义为准。

    十、菜单资源

    提供菜单选择的资源,分为选项菜单和上下文菜单,通常需要我们手动添加到 Android Studio 的res目录下新建的menu目录中。

    然后添加代码如下,创建菜单项。

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <!--  增加菜单项  -->
        <item android:id="message" android:title="1"></item>
        <item android:id="message" android:title="2"></item>
        <item android:id="message" android:title="3"></item>
    </menu>

    1、选项菜单

    调出方法:单击手机菜单键或点击APP右上方3个小圆点。

    //完成跳出菜单并根据选择的菜单选项跳转到指定的界面
        //第三步:重写onCreateOptionsMenu()方法,添加一个选项菜单
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater menuInflater = new MenuInflater(this);
            menuInflater.inflate(R.menu.menu,menu);
            return super.onCreateOptionsMenu(menu);
        }
        //第四步:重写onOptionsItemSelected()方法,指定各个菜单被选项时,所应做的处理
        @Override
        public boolean onOptionsItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()){
                case R.id.settings:
                    Intent intent1= new Intent(MainActivity.this,Setting.class);
                    startActivity(intent1);
                    break;
                case R.id.regard:
                    Intent intent2= new Intent(MainActivity.this,regard.class);
                    startActivity(intent2);
                    break;
            }
            return super.onOptionsItemSelected(item);
        }

    2、上下文菜单

    长按实现上下文菜单,前面博客文章有过介绍,不再赘述。

  • 相关阅读:
    LeetCode 542. 01 矩阵
    LeetCode 面试题 16.03. 交点
    LeetCode 151. 翻转字符串里的单词
    Markdown数学公式语法
    LeetCode 22. 括号生成
    LeetCode 146. LRU缓存机制
    LeetCode 面试题13. 机器人的运动范围
    LeetCode 48. 旋转图像
    LeetCode 84. 柱状图中最大的矩形
    LeetCode 42. 接雨水
  • 原文地址:https://www.cnblogs.com/dongao/p/12253716.html
Copyright © 2020-2023  润新知