基本上,我试图将SVG可绘制对象添加到ImageView,但是我不断收到无法解决的奇怪类型错误。

// String var "icon" holds the name of the drawable resource
int drawableId = context.getResources()
     .getIdentifier(icon, "drawable", MainActivity.PACKAGE_NAME);

// drawableId shows the error:
// 'getDrawable(android.content.Context, int)' in 'android.support.v4.content.ContextCompat' cannot be applied to '(int)'
// I tried using Context instead of ContextCompat, but I got an error about needing API 21
Drawable channelIcon = ContextCompat.getDrawable(drawableId);

// drawableId here shows no error
imageView.setImageResource(drawableId);


知道我在做什么错吗?基本上,这是需要为R.drawable.something使用变量的解决方法

谢谢。

最佳答案

我正在尝试将可绘制的SVG添加到ImageView


ImageView不支持SVG。


  知道我在做什么错吗?


除了上述问题,请替换:

Drawable channelIcon = ContextCompat.getDrawable(drawableId);


与:

Drawable channelIcon = ContextCompat.getDrawable(context, drawableId);

10-05 18:33