android批量获取res文件中的drawable图片

###工具类


import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;

import com.example.administrator.oujiademo.R;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

/**
 * 批量获取指定的drawable图片文件
 */
public class DrawableUtil {
    private Context context;

    public DrawableUtil(Context context) {
        this.context = context;
    }

    /**
     * 批量获取指定图片 imageResourceId
     *
     * @param imgName 图片名字的部分或全部
     * @return 图片名字中包含有imgName的所有图片 imageResourceId
     * 

* 使用示例: 如有5张图片: image_0 ,image_1 ,image_2 , image_3 ,image_4 ; * 调用方法 getImageResourId("image_") ,则会得到上面的5张图片的imageResourceId * 如果传入的imgName为全名则返回的就是一张图片 */ public List getImageResourId(String imgName) { List imgList = new ArrayList<>(); Resources resources = context.getResources(); Field[] fields = R.drawable.class.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { fields[i].setAccessible(true); String name = fields[i].getName(); if (name.contains(imgName)) { int resId = resources.getIdentifier(name, "drawable", context.getPackageName()); imgList.add(resId); } } return imgList; } /** * 批量获取指定图片 drawable对象 * * @param imgName 图片名字的部分或全部 * @return 图片名字中包含有imgName的所有图片 drawable对象 *

* 使用示例: 如有5张图片: image_0 ,image_1 ,image_2 , image_3 ,image_4 ; * 调用方法 getImageResourId("image_") ,则会得到上面的5张图片的drawable * 如果传入的imgName为全名则返回的就是一张图片 */ public List getDrawable(String imgName) { List imgList = new ArrayList<>(); Resources resources = context.getResources(); Field[] fields = R.drawable.class.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { fields[i].setAccessible(true); String name = fields[i].getName(); if (name.contains(imgName)) { int resId = resources.getIdentifier(name, "drawable", context.getPackageName()); Drawable drawable = resources.getDrawable(resId); imgList.add(drawable); } } return imgList; } }

你可能感兴趣的:(Android,动画)