1、Xml准备工作:
①首先将准备好的图片资源放在mipmap文件下,之后在res\values文件下创建一个“arrays”命名的xml文件;
②在该文件中创建<integer-array></integer-array>标签,并为其加上name属性,name的值将是你在 java代码中R.array."name",即图中的img_array;
③为数组添加选项<item></item>,他们之间的值是,你存放图片资源的路径;
④去除系统默认添加的ActionBar标题栏:打开app\res\values文件夹中的styles.xml文件,将“DarkActionBar”改为“NoActionBar”。
如下.xml所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer-array name="img_array">
<item>@mipmap/background_splash_one</item>
<item>@mipmap/background_splash_two</item>
<item>@mipmap/background_splash_three</item>
</integer-array>
</resources>
2、(Java代码)获取图片的数组:
①首先利用TypedArray对象获取到图片数组,最后记得释放资源;
②将数组中的图片(的ID)取出来存入int [] resids数组中;
private int[] getArrayForRes() {
TypedArray imgArray=getResources().obtainTypedArray(R.array.img_array);
int len=imgArray.length();
resids=new int[len];
for (int i=0;i<len;i++){
resids[i]=imgArray.getResourceId(i,0);
}
imgArray.recycle();//释放资源
return resids;
}
TypedArray.getResourceId(参数一,参数二); 参数一:当前要取出id的图片资源位置;参数二:没找到参数一所对应的图片用它来代替,0,表示没有,可以在这里加上别的图片资源Id。
3、(Java代码)加载图片
Random对象,随机获取图片的id,利用ImageView.setImageResource(resids)将图片加载出来。
如下所示:
private void loadImageView() {
Random ra=new Random();
int pos=ra.nextInt(getArrayForRes().length);
imageView.setImageResource(resids[pos]);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
toSecond();
}
}).start();
}
开一个子线程,延迟4秒钟后执行之后的操作Thread.sleep(4000)。
4、为防止图片没有填充到全部的屏幕,使用ImageView的android:scaleType="centerCrop"属性。