public static Bitmap getBmpByResid(Resources resources, int resid)
{
// return BitmapFactory.decodeResource(getResources(), resid);
BitmapDrawable drawable = (BitmapDrawable)resources.getDrawable(resid);
return drawable.getBitmap();
}
// 根据width获取bmp
public static Bitmap getBmpByWidth(Resources resources, int resid, int dstWidth)
{
Bitmap bmp = getBmpByResid(resources, resid);
double dstHeight = getHeightByWidth(bmp, dstWidth);
bmp = Bitmap.createScaledBitmap(bmp, (int)dstWidth, (int)dstHeight, true);
return bmp;
}
public static int getHeightByWidth(Bitmap bmp, double width)
{
double height = width / bmp.getWidth() * bmp.getHeight();
return (int)height;
}
// 根据width和height获取bmp
public static Bitmap getBmpBySize(Resources resources, int resid, int dstWidth, int dstHeight)
{
Bitmap bmp = getBmpByResid(resources, resid);
bmp = Bitmap.createScaledBitmap(bmp, (int)dstWidth, (int)dstHeight, true);
return bmp;
}
// 根据缩放因子获取等比缩放以后的bmp
public static Bitmap getBmpByScale(Resources resources, int resid, double scale)
{
Bitmap bmp = getBmpByResid(resources, resid);
double dstWidth = bmp.getWidth() * scale;
double dstHeight = bmp.getHeight() * scale;
bmp = Bitmap.createScaledBitmap(bmp, (int)dstWidth, (int)dstHeight, true);
return bmp;
}