res-values-strings.xml
<resources>
<string name="app_name">Ch06ResourceDemo2</string>
<string-array name="names">
<item>爱丽丝</item>
<item>鲍勃</item>
</string-array>
<integer-array name="ages">
<item>22</item>
<item>21</item>
</integer-array>
<array name="pics">
<item>@mipmap/header1</item>
<item>@mipmap/header2</item>
</array>
</resources>
布局文件 activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/img_list_state"
android:text="神奇按钮"
android:textColor="@drawable/color_list_state" />
<ImageView
android:id="@+id/iv_img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/img_list_layer" />
<Button
android:id="@+id/btn_change_img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="更换图片"/>
<Spinner
android:id="@+id/spn_names"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/names"/>
</LinearLayout>
</ScrollView>
MainActivity.java
package com.example.ch06resourcedemo2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast;
import java.io.IOException;
import java.io.InputStream;
public class MainActivity extends AppCompatActivity {
private ImageView ivImg;
private Button btnChangeImg;
private Spinner spnNames;
private Resources resources;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
btnChangeImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Resources rs = getApplicationContext().getResources();
AssetManager am = rs.getAssets();
InputStream in = null;
try {
in = am.open("m3.png");
} catch (IOException e) {
e.printStackTrace();
}
Bitmap img = BitmapFactory.decodeStream(in);
ivImg.setImageBitmap(img);
}
});
spnNames.setSelection(0);
spnNames.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(getApplicationContext(),
spnNames.getSelectedItem().toString(),
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
resources = getResources();
int[] ages = resources.getIntArray(R.array.ages);
for (int age:ages) {
System.out.println(age);
}
TypedArray typedArray = resources.obtainTypedArray(R.array.pics);
Drawable drawable = typedArray.getDrawable(0);
ivImg.setImageDrawable(drawable);
}
private void findViews() {
ivImg = findViewById(R.id.iv_img);
btnChangeImg =findViewById(R.id.btn_change_img);
spnNames = findViewById(R.id.spn_names);
}
}