【问题标题】:What to use In place of getDrawable(int) in lower API like 15在较低的 API(如 15)中使用什么代替 getDrawable(int)
【发布时间】:2016-12-16 01:23:25
【问题描述】:

我正在编写一个使用以下代码的应用程序,但它适用于 API 21 及更高版本。

ImageView i = (ImageView) findViewById(R.id.tickcross);
i.setImageDrawable(getDrawable(R.drawable.weirdtick));

对于像 15 这样的较低 API,我可以使用什么?

【问题讨论】:

  • 我更改了 compile 'com.android.support:appcompat-v7:25.0.1'
  • 编译 'com.android.support:appcompat-v7:25.0.1' 来编译 'com.android.support:appcompat-v7:25.0.2' 同步它不起作用请帮忙跨度>
  • 我已编译 'com.android.support.appcompat-v7:25.0.1' 将其更改为 2 it dnt sys。

标签: android xml drawable


【解决方案1】:

你可以使用ContextCompat:

ContextCompat.getDrawable(getContext(), R.drawable.weirdtick)

请注意,您还需要添加 v4 支持库才能使用 ContextCompat。您可以通过在项目 build.gradle 依赖项中添加以下行来添加它:

// Change version 25.0.2  to your installed version.
compile com.android.support:support-v4:25.0.2 

阅读更多支持库:Support Library Features

【讨论】:

  • 尝试安装存储库但无法下载。我该怎么办?
  • 当我将 'com.android.support:appcompat-v7:25.0.1' 更改为编译 'com.android.support:appcompat-v7:25.0.2' 时,我已经在我的电脑上编译了
  • 有什么错误吗?你加import android.support.v4.content.ContextCompat;了吗?
  • 也许我在这里遗漏了一些东西。是“现在一切正常”还是“一切都不起作用”?
  • 添加 ContextCompat 后,每当我运行应用程序时,它就会不幸停止。请提供解决方案
【解决方案2】:

使用 ContextCompat.getDrawable(getContext(), R.drawable.image1)

【讨论】:

    【解决方案3】:

    类似于ContextCompat.getDrawable(getApplicationContext(), R.drawable.drawable1);ResourcesCompat.getDrawable(getResources(),R.drawable.blue,customTheme);。 不同之处在于后者需要一个参数作为Resources.Theme theme 或者只是给null。 如果您有自定义主题,则可以使用后者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多