gpt4 book ai didi

java - ResourcesCompat.getDrawable() 与 AppCompatResources.getDrawable()

转载 作者:IT老高 更新时间:2023-10-28 20:25:05 26 4
gpt4 key购买 nike

我对这两个 API 有点困惑。

ResourcesCompat.getDrawable(Resources res, int id, Resources.Theme theme)

Return a drawable object associated with a particular resource ID and styled for the specified theme. Various types of objects will be returned depending on the underlying resource -- for example, a solid color, PNG image, scalable image, etc.

Prior to API level 21, the theme will not be applied and this method simply calls through to getDrawable(int).

AppCompatResources.getDrawable(Context context, int resId)

Return a drawable object associated with a particular resource ID.

This method supports inflation of vector and animated-vector resources on devices where platform support is not available.

问题

  1. 这两个类之间的显着区别是什么(除了 vector 通货膨胀)?
  2. 我应该更喜欢哪一个,为什么?

最佳答案

这是我经过一些测试后的理解:

ContextCompat.getDrawable(@NonNull Context context, @DrawableRes int resId)

ResourcesCompat.getDrawable(@NonNull Resources res, @DrawableRes int id, @Nullable Theme theme)

AppCompatResources.getDrawable(@NonNull Context context, @DrawableRes int resId)

VectorDrawableCompat.create(@NonNull Resources res, @DrawableRes int resId, @Nullable Theme theme

我首先看到的是VectorDrawableCompatResourcesCompat可以指定一个主题。

I) 不使用

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);在Application类的onCreated

1) 对于 vector 图

  • API >= 21

  • ContextCompat 效果很好

  • ResourcesCompat 运行良好

  • AppCompatResources 运行良好

  • VectorDrawableCompat 效果很好

  • API < 21

  • ContextCompat 崩溃

  • ResourcesCompat 崩溃

  • AppCompatResources 运行良好

  • VectorDrawableCompat 效果很好

2) 普通图片

  • 在所有 API 级别
  • ContextCompat 效果很好
  • ResourcesCompat 效果很好
  • AppCompatResources 运行良好
  • VectorDrawableCompat 崩溃

II) 使用

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);在Application类的onCreated

1) 对于 vector 图

  • 在所有 API 级别
  • ContextCompat 效果很好
  • ResourcesCompat 运行良好
  • AppCompatResources 运行良好
  • VectorDrawableCompat 效果很好

2) 对于普通图像

  • 在所有 API 级别
  • ContextCompat 效果很好
  • ResourcesCompat 效果很好
  • AppCompatResources 运行良好
  • VectorDrawableCompat 崩溃

关于java - ResourcesCompat.getDrawable() 与 AppCompatResources.getDrawable(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43004886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com