Resource 使用詳解

和你一起終身學(xué)習(xí),這里是程序員Android
經(jīng)典好文推薦,通過閱讀本文,您將收獲以下知識點(diǎn):
一、多語言 String 資源
二、多屏幕 Image 資源
三、橫豎屏 Layout 布局
四、不同版本SDK
五、Array 數(shù)組資源
六、 Color 顏色資源
七、Dimen 尺寸資源
八、style樣式 資源
九、assert 文件夾下的原始資源
十、raw 文件夾下的資源
十一、anim 文件夾下的資源
Android中經(jīng)常會使用資源文件來填充View或者 實(shí)現(xiàn)app?相關(guān)的功能,本篇文章總結(jié)了Android中常見的一些資源的使用方法。
一、 多語言 String 資源
String?主要用于存放系統(tǒng)字符串資源,字符串資源跟其他資源類似,也是在values文件夾下。Android字符串資源支持多語言,使用方法如下:
1.命名規(guī)則
valuess-(ISO語言代碼)

常用語言如上
2.使用語法
1. 字符串資源Java類使用方法
Java使用方法如下:R.string.引用字符串資源
Java中 字符串資源獲取方法:
tv_res = (TextView) findViewById(R.id.tv_res);
String mString=getResources().getString(R.string.hello_world);
tv_res.setText(mString);
2. 字符串資源XML中使用方法
使用方法如下:@string/?引用字符串資源
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
存儲多語言字符串資源文件:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
... ...
<string name="hello_world">Hello world!string>
... ...
resources>
二、多屏幕 Image 資源
Image?主要用于存放系統(tǒng)圖片資源,圖片資源跟其他資源類似,也是在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);
三、 多屏幕 Layout 布局
由Array?主要用于存放系統(tǒng)布局資源,布局資源跟其他資源類似,也是在res文件夾下。
于Andoid設(shè)備屏幕大小不統(tǒng)一,因此Android為適配多屏幕實(shí)現(xiàn)多布局。

兼容不同屏幕布局

不同布局常用于區(qū)別橫豎屏,平板等
固定Activity的顯示方向:
<activity
android:name=".Activity.ActivityMethods"
android:screenOrientation="portrait" />
<activity
android:name="com.programandroid.TextView.TextViewMethod"
android:screenOrientation="landscape" />
四、 不同版本SDK支持
1.在AndroidManfest.xml中聲明
android SDK版本支持:
<uses-sdk
android:minSdkVersion="24"
android:targetSdkVersion="27" />
2.Java 代碼中SDK版本判斷
SDK 版本判斷:
//判斷當(dāng)前手機(jī)設(shè)備SDK 版本是否是在Android M 6.0 之上
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
}else {
}
五、 Array 數(shù)組資源
Array?主要用于存放系統(tǒng)數(shù)組資源,數(shù)組資源跟其他資源類似,也是在values文件夾下。
1.xml 中聲明數(shù)組資源如下:
<string-array name="fav_phone">
<item>Iphoneitem>
<item>華為item>
<item>小米item>
<item>oppoitem>
<item>vivoitem>
<item>錘子item>
string-array>
2. xml 中使用方法如下:
在XML 中直接使用數(shù)組資源:
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/fav_phone" />
3. Java 中使用方法如下
Java 中使用字符串資源:
String[] mArray=getResources().getStringArray(R.array.fav_phone);
六、 Color 顏色資源
Color?主要用于存放系統(tǒng)顏色資源,顏色資源跟其他資源類似,也是在values文件夾下。
Colors.xml 中的顏色值
<resources>
<color name="grey">#A9A9A9color>
<color name="black">#000000color>
<color name="white_line">#d8d8d8color>
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="顏色資源設(shè)置"
android:textColor="@color/black" />
2. Java 中使用顏色資源的方法
使用自定義Color 資源
Java中顏色資源使用方法:
Button mButton=(Button) findViewById(R.id.btn_res_color);
mButton.setTextColor(getResources().getColor(R.color.black));
使用 系統(tǒng)Color 類中的原始資源
使用系統(tǒng)Color 類中的資源:
Button mButton=(Button) findViewById(R.id.btn_res_color);
// mButton.setTextColor(getResources().getColor(R.color.black));
mButton.setTextColor(Color.RED);
七、Dimen 尺寸資源
Dimen?主要用于規(guī)范化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="尺寸資源設(shè)置" />
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));
八、 style樣式 資源
style?主要是統(tǒng)一規(guī)范app系統(tǒng)主題樣式等資源。
style樣式資源控制舉例:
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">style>
<style name="AppTheme" parent="AppBaseTheme">style>
<style name="loading_dialog" parent="android:style/Theme.Dialog">
<item name="android:windowFrame">@nullitem>
<item name="android:windowNoTitle">trueitem>
<item name="android:windowBackground">@drawable/loading_bgitem>
<item name="android:windowIsFloating">trueitem>
<item name="android:windowContentOverlay">@nullitem>
style>
1.xml 下使用方法

style 樣式資源使用方法
2. Java 代碼中使用方法

Java 代碼中設(shè)置Theme的方法,注意一定要在onCreate 方法之前
九、 assert 文件夾下的原始資源
此文件夾為原始資源文件夾,文件下的內(nèi)容不會被編譯,此目錄同src及res?同級。

asset 文件存儲地址
獲取asset下文件字符串、位圖:
public void ResAssetMethod(View view) {
String fileString = ReadStrFromFile("test.txt");
Toast.makeText(getApplicationContext(), "文件內(nèi)容" + 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;
}
十、 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) {
}
}
}
});
}
十一、 anim 文件夾下的資源
Anim主要用于存放Android動畫資源。
配置幀動畫
anim 配置:
<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" />至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請聯(lián)系小編刪除。同時感謝您的閱讀,期待您的關(guān)注。
