Android BitmapFactory.decodeResource不工作API>;19

Android BitmapFactory.decodeResource不工作API>;19,android,android-drawable,android-bitmap,Android,Android Drawable,Android Bitmap,我试图从文件夹/drawable中获取图像,但当api>19时,我收到空值。有人知道问题出在哪里吗 我使用的所有图像都是向量 dog.setImagen(BitmapFactory.decodeResource(getResources(), R.drawable.dog)); 提前谢谢试试这个 Bitmap bm = ((BitmapDrawable) getResources().getDrawable(R.drawable.dog)).getBitmap(); dog.setImagen

我试图从文件夹/drawable中获取图像,但当api>19时,我收到空值。有人知道问题出在哪里吗

我使用的所有图像都是向量

dog.setImagen(BitmapFactory.decodeResource(getResources(), R.drawable.dog));
提前谢谢

试试这个

Bitmap bm = ((BitmapDrawable) getResources().getDrawable(R.drawable.dog)).getBitmap();
dog.setImagen(bm);

我已经用这个代码解决了我的问题

private Bitmap getBitmap(Drawable vectorDrawable) {
        Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(),
                vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
        vectorDrawable.draw(canvas);
        return bitmap;
    }

谢谢大家

它不起作用,抛出一个异常“android.graphics.drawable.VectorDrawable不能强制转换为android.graphics.drawable.BitmapDrawable”,然后不要强制转换为位图drawable。但是,您可以在画布上绘制任何可绘制图形(在您的示例中,是指定给位图的图形)。看见