package com.team.zhuoke.utils;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.ImageView;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
/**
* @author: 范建海
* @createTime: 2016/10/30 13:56
* @className: ResourceUtil
* @description: 读取res目录下的内容的工具类
* @changed by:
*/
public class ResourceUtil {
public static final String LAYTOUT="layout";
public static final String DRAWABLE="drawable";
public static final String MIPMAP="mipmap";
public static final String MENU="menu";
public static final String RAW="raw";
public static final String ANIM="anim";
public static final String STRING="string";
public static final String STYLE="style";
public static final String STYLEABLE="styleable";
public static final String INTEGER="integer";
public static final String ID="id";
public static final String DIMEN="dimen";
public static final String COLOR="color";
public static final String BOOL="bool";
public static final String ATTR="attr";
/**
* 根据资源名获得资源id
* @param context 上下文
* @param name 资源名
* @param type 资源类型
* @return 资源id,找不到返回0
*/
public static int getResourceId(Context context,String name,String type){
Resources resources=null;
PackageManager pm=context.getPackageManager();
try {
resources=context.getResources();
return resources.getIdentifier(name, type, context.getPackageName());
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
/**
* 从assets目录下读取文件内容
*
* @param context 上下文
* @param fileName 文件名
* @return 文件字节流
*/
public static byte[] readBytesFromAssets(Context context, String fileName) {
InputStream is = null;
byte[] buffer = null;
try {
is = context.getAssets().open(fileName);
int size = is.available();
buffer = new byte[size];
is.read(buffer);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
is = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
return buffer;
}
/**
* 从res/raw目录下读取文件内容
*
* @param context 上下文
* @param rawId rawId
* @return 文件字节流
*/
public static byte[] readBytesFromRaw(Context context, int rawId) {
InputStream is = null;
byte[] buffer = null;
try {
is = context.getResources().openRawResource(rawId);
int size = is.available();
buffer = new byte[size];
is.read(buffer);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
is = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
return buffer;
}
/**
* 从assets目录读取文本
*
* @param context 上下文
* @param fileName 文件名
* @return 文本内容
*/
public static String readStringFromAssets(Context context, String fileName) {
String result = null;
byte[] buffer = readBytesFromAssets(context, fileName);
try {
result = new String(buffer, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
/**
* 从raw目录读取文本
*
* @param context 上下文
* @param rawId id值
* @return 文本内容
*/
public static String readStringFromRaw(Context context, int rawId) {
String result = null;
byte[] buffer = readBytesFromRaw(context, rawId);
try {
result = new String(buffer, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
/**
* 获得字符串
* @param context 上下文
* @param strId 字符串id
* @return 字符串
*/
public static String getString(Context context,int strId){
return context.getResources().getString(strId);
}
/**
* 获得颜色
* @param context 上下文
* @param colorId 颜色id
* @return 颜色
*/
public static int getColor(Context context,int colorId){
return context.getResources().getColor(colorId);
}
/**
* 获得Drawable
* @param context 上下文
* @param drawableId Drawable的id
* @return Drawable
* {@link ImageView#setImageDrawable(Drawable)}
* {@link ImageView #setImageBitmap(android.graphics.Bitmap)}
* {@link View#setBackgroundDrawable(Drawable)}
*/
public static Drawable getDrawable(Context context,int drawableId){
return context.getResources().getDrawable(drawableId);
}
/**
* 获取指定资源id对应的字符串数组
* @param ctx 上下文
* @param resID 字符串数组资源ID
* @return (测试通过)
*/
public static String[] getStringArray(Context ctx,int resID) {
return ctx.getResources().getStringArray(resID);
}
/**
* 获取指定资源id对应的整型数组
* @param ctx 上下文
* @param resID 整型数组资源ID
* @return
*/
public static int[] getIntArray(Context ctx,int resID) {
return ctx.getResources().getIntArray(resID);
}
/**
* 获取指定资源id对应的尺寸
* @param ctx 上下文
* @param resID 尺寸资源ID
* @return (测试通过) 返回的单位为 px(dp * density = px)(sp * density = px)
*/
public static float getDimension(Context ctx,int resID) {
return ctx.getResources().getDimension(resID);
}
}