我需要得到一个可绘制的对象,以显示在一个图像按钮。有没有办法使用下面的代码(或类似的代码)从android.R.drawable.*包中获取对象?
例如,如果drawableId为android.R.drawable.ic_delete
mContext.getResources().getDrawable(drawableId)
发布于 2011-10-19 10:13:20
Drawable d = getResources().getDrawable(android.R.drawable.ic_dialog_email);
ImageView image = (ImageView)findViewById(R.id.image);
image.setImageDrawable(d);
发布于 2017-02-06 23:55:39
从API 21开始,您还可以使用:
ResourcesCompat.getDrawable(getResources(), R.drawable.name, null);
代替ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)
发布于 2019-11-08 21:01:29
不推荐使用API 21中的getDrawable(int id)
。
所以现在你需要使用
ResourcesCompat.getDrawable(context.getResources(), R.drawable.img_user, null)
但最好的方法是:
您应该创建一个用于获取可绘制和颜色的公共类,因为如果将来有任何弃用,那么您不需要在project.You中到处进行更改,只需在此方法中进行更改
import android.content.Context
import android.graphics.drawable.Drawable
import androidx.core.content.res.ResourcesCompat
object ResourceUtils {
fun getColor(context: Context, color: Int): Int {
return ResourcesCompat.getColor(context.resources, color, null)
}
fun getDrawable(context: Context, drawable: Int): Drawable? {
return ResourcesCompat.getDrawable(context.resources, drawable, null)
}
}
使用此方法,如:
Drawable img=ResourceUtils.getDrawable(context, R.drawable.img_user)
image.setImageDrawable(img);
https://stackoverflow.com/questions/7815689
复制相似问题