如何从特定的mipmap图像中读取字节?例如,我尝试从位于 mipmap-xxhdpi 的 ic_launcher.png 读取字节
以下是我要做的事情:
InputStream ins = getResources().
openRawResource(getResources().
getIdentifier("ic_launcher.png",
"mipmap-xxhdpi", getPackageName()));
但我得到一个例外,说没有找到资源。做正确的方法是什么?我想阅读 mipmap-xxhdpi 中的文件,特别是
答案 0 :(得分:6)
您可以使用
获取xxhdpi的特定drawableResourcesCompat.getDrawableForDensity(getResources(), R.mipmap.ic_launcher, DisplayMetrics.DENSITY_XXHIGH, getTheme());
之后,您可以将位图压缩回png
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
drawable.draw(new Canvas(bitmap));
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] pngBytes = stream.toByteArray();