Resource 使用详解

极力推荐文章:欢迎收藏
Android 干货分享 android

阅读五分钟,每日十点,和您一块儿终身学习,这里是程序员Android

本篇文章主要介绍 Android 开发中的部分知识点,经过阅读本篇文章,您将收获如下内容:程序员

  1. 多语言 String 资源
  2. 多屏幕 Image 资源
  3. 横竖屏 Layout 布局
  4. 不一样版本SDK
  5. Array 数组资源
  6. Color 颜色资源
  7. Dimen 尺寸资源
  8. style样式 资源
  9. assert 文件夹下的原始资源
  10. raw 文件夹下的资源
  11. anim 文件夹下的资源

Android中常常会使用资源文件来填充View 或者 实现app 相关的功能,本篇文章总结了Android 中常见的一些资源的使用方法。数组

1. 多语言 String 资源

String 主要用于存放系统字符串资源,字符串资源跟其余资源相似,也是在values文件夹下。
Android 字符串资源支持多语言,使用方法以下:微信

命名规则

valuess-(ISO语言代码)app

经常使用语言如上

使用语法

1. 字符串资源Java类使用方法

Java使用方法以下:
R.string.<string_name> 引用字符串资源ide

Java中 字符串资源获取方法:布局

tv_res = (TextView) findViewById(R.id.tv_res);
        String mString=getResources().getString(R.string.hello_world);
        tv_res.setText(mString);

2. 字符串资源XML中使用方法

使用方法以下:
@string/<string_name> 引用字符串资源学习

XML 中 字符串资源获取方法:测试

<TextView
        android:id="@+id/tv_res"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="测试 res 资源文件使用方法" />

3. 存储多语言翻译字符串

存放路径以下:
valuess-(ISO语言代码)/strings.xml 动画

存储多语言字符串资源文件:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">

    ...  ...
    <string name="hello_world">Hello world!</string>
    ...  ...
</resources>

2. 多屏幕 Image 资源

Image 主要用于存放系统图片资源,图片资源跟其余资源相似,也是在res文件夹下。
经常使用存放图片资源的文件夹以下:
不一样分辨率图片资源文件

mdpi 1倍缩放

hdpi 1.5 倍缩放

xhdpi 2倍 缩放

xxhdpi 3倍缩放

xxxdpi  4倍 缩放

1. 在XML 中使用图片资源

xml 中使用图片资源:

<ImageView
        android:id="@+id/img_res_usb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

2. 在Java类中 使用图片资源

Java中使用图片资源 :

ImageView mImageView=(ImageView) findViewById(R.id.img_res_usb);
        mImageView.setImageResource(R.drawable.ic_launcher);

3. 多屏幕 Layout 布局

Array 主要用于存放系统布局资源,布局资源跟其余资源相似,也是在res文件夹下。
Andoid设备屏幕大小不统一,所以Android为适配多屏幕实现多布局。

兼容不一样屏幕布局

不一样布局经常使用于区别横竖屏,平板等

固定Activity的显示方向:

<!-- 竖屏 portrait -->
        <activity
            android:name=".Activity.ActivityMethods"
          
            android:screenOrientation="portrait" />
        <!-- 横屏  landscape  -->
        <activity
            android:name="com.programandroid.TextView.TextViewMethod"
            android:screenOrientation="landscape" />

4. 不一样版本SDK支持

在AndroidManfest.xml中声明

android SDK版本支持:

<uses-sdk
        android:minSdkVersion="24"
        android:targetSdkVersion="27" />

Java 代码中SDK版本判断

SDK 版本判断:

//判断当前手机设备SDK 版本是不是在Android M 6.0 之上
        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
            
        }else {
            
        }

5. Array 数组资源

Array 主要用于存放系统数组资源,数组资源跟其余资源相似,也是在values文件夹下。

xml 中声明数组资源以下:

<string-array name="fav_phone">
        <item>Iphone</item>
        <item>华为</item>
        <item>小米</item>
        <item>oppo</item>
        <item>vivo</item>
        <item>锤子</item>
    </string-array>

1. xml 中使用方法以下:

在XML 中直接使用数组资源:

<ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:entries="@array/fav_phone" />

2. Java 中使用方法以下

Java 中使用字符串资源:

String[] mArray=getResources().getStringArray(R.array.fav_phone);

6. Color 颜色资源

Color 主要用于存放系统颜色资源,颜色资源跟其余资源相似,也是在values文件夹下。

Colors.xml 中的颜色值

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <color name="grey">#A9A9A9</color>
    <color name="black">#000000</color>
    <color name="white_line">#d8d8d8</color>

</resources>

1. xml中使用资源文件的方法

xml 中使用Color 资源方法:

<Button
        android:id="@+id/btn_res_color"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="ResColorMethod"
        android:text="颜色资源设置"
        android:textColor="@color/black" />

2. Java 中使用颜色资源的方法

  • 使用自定义Color 资源

Java中颜色资源使用方法:

Button mButton=(Button) findViewById(R.id.btn_res_color);
        mButton.setTextColor(getResources().getColor(R.color.black));
  • 使用 系统Color 类中的原始资源

使用系统Color 类中的资源:

Button mButton=(Button) findViewById(R.id.btn_res_color);
//        mButton.setTextColor(getResources().getColor(R.color.black));
        mButton.setTextColor(Color.RED);

7. Dimen 尺寸资源

Dimen 主要用于规范化Android 尺寸,边距等资源。尺寸资源跟其余资源相似,也是在values文件夹下。
Dimen 资源自定义资源

1. xml中使用Dimen 资源文件的方法

xml 中使用Dimen 资源:

<Button
        android:id="@+id/btn_res_dimen"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="ResDimenMethod"
        android:textSize="@dimen/abc_action_bar_default_height"
        android:paddingLeft="@dimen/abc_action_bar_default_height"
        android:text="尺寸资源设置" />

2. Java 中使用Dimen资源的方法

Java代码中使用Dimen资源:

Button mButton=(Button) findViewById(R.id.btn_res_color);
//        mButton.setTextColor(getResources().getColor(R.color.black));
        mButton.setTextColor(Color.RED);
        mButton.setTextSize(getResources().getDimension(R.dimen.activity_horizontal_margin));

8. style样式 资源

style 主要是统一规范app系统主题样式等资源。

style样式资源控制举例:

<resources>

    <style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme"></style>

    <!-- 自定义loading dialog样式 -->
    <style name="loading_dialog" parent="android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@drawable/loading_bg</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

1.xml 下使用方法

style 样式资源使用方法

2. Java 代码中使用方法

Java 代码中设置Theme的方法,注意必定要在onCreate 方法以前

9. assert 文件夹下的原始资源

此文件夹为原始资源文件夹,文件下的内容不会被编译,此目录同srcres 同级。
asset 文件存储地址

获取asset下文件字符串、位图:

public void ResAssetMethod(View view) {
        String fileString = ReadStrFromFile("test.txt");
        Toast.makeText(getApplicationContext(), "文件内容" + fileString,
                Toast.LENGTH_LONG).show();

        Bitmap btnBitmap = ReadImageFromAssetFile("img/ic_launcher.png");
        ImageView img = (ImageView) findViewById(R.id.img_res_assert);
        img.setImageBitmap(btnBitmap);
    }

1. 获取asset下文件字符串

获取asset下文件字符串 方法:

/**
     * @param string
     */
    private String ReadStrFromFile(String filename) {
        if (TextUtils.isEmpty(filename)) {
            Toast.makeText(getApplicationContext(), "文件不能为空",
                    Toast.LENGTH_SHORT).show();
            return null;
        }
        String assetString = null;
        try {
            InputStream inputStream = getAssets().open(filename);
            byte[] bytes = new byte[inputStream.available()];
            inputStream.read(bytes);
            assetString = new String(bytes, "utf-8");
            inputStream.close();

        } catch (Exception e) {
            e.printStackTrace();
        }

        return assetString;
    }

2. 获取asset下 图片

获取asset下 图片方法:

/**
     * @param string
     */
    private Bitmap ReadImageFromAssetFile(String filename) {

        if (filename == null) {
            return null;
        }
        Bitmap bitmap = null;
        try {

            InputStream inputStream = getAssets().open(filename);
            bitmap = BitmapFactory.decodeStream(inputStream);

        } catch (IOException e) {
            e.printStackTrace();
        }
        return bitmap;

    }

10. raw 文件夹下的资源

raw 主要用于存放Android 资源。

播放Raw 文件夹下Music

raw 资源文件夹引用方法:

private MediaPlayer mMediaPlayer;
    private boolean isplaying = false;

    public void ResRAWMethod(View view) {

        mMediaPlayer = MediaPlayer.create(ResourceActivity.this,
                R.raw.bootaudio);
        if (!isplaying) {
            mMediaPlayer.start();// 开始播放
            isplaying = true;
            Toast.makeText(getApplicationContext(), "正在播放中", Toast.LENGTH_LONG)
                    .show();
        }

        mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                if (mMediaPlayer != null) {
                    try {
                        isplaying = false;
                        mMediaPlayer.stop();
                        mMediaPlayer.reset();
                        mMediaPlayer.release();
                        mMediaPlayer = null;
                    } catch (Exception e) {
                    }

                }
            }
        });
    }

11. anim 文件夹下的资源

Anim主要用于存放Android动画资源。

配置帧动画

anim 配置:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:drawable="@drawable/bird0001_risk"
        android:duration="80"/>
    <item
        android:drawable="@drawable/bird0002_risk"
        android:duration="80"/>
    <item
        android:drawable="@drawable/bird0003_risk"
        android:duration="80"/>
    <item
        android:drawable="@drawable/bird0004_risk"
        android:duration="80"/>

使用动画资源

anim 的使用:

<ImageView
        android:id="@+id/img"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center_horizontal"
        android:background="@anim/frame_animation" />

至此,本篇已结束,若有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

微信关注公众号:  程序员Android,领福利

相关文章
相关标签/搜索