首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Android API < 21上使用setImageTintList

在Android API < 21上使用setImageTintList,可以通过以下步骤实现:

  1. 首先,确保你的项目中使用的是支持向下兼容的AppCompat库。在build.gradle文件中添加以下依赖项:
代码语言:txt
复制
implementation 'androidx.appcompat:appcompat:1.3.1'
  1. 在布局文件中,将ImageView的src属性设置为你想要着色的图像资源。例如:
代码语言:txt
复制
<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_image" />
  1. 在代码中,获取ImageView的实例,并使用AppCompatResources类的getDrawable()方法获取Drawable对象。然后,使用TintList类的valueOf()方法创建一个ColorStateList对象,该对象定义了不同状态下的颜色。最后,调用ImageView的setImageTintList()方法将颜色应用到图像上。例如:
代码语言:txt
复制
ImageView imageView = findViewById(R.id.imageView);
Drawable drawable = AppCompatResources.getDrawable(this, R.drawable.ic_image);
ColorStateList colorStateList = ColorStateList.valueOf(Color.RED);
imageView.setImageDrawable(drawable);
imageView.setImageTintList(colorStateList);

在上述代码中,我们将图像资源设置为ImageView的src属性,并将红色作为着色颜色。你可以根据需要更改颜色。

请注意,上述方法适用于API级别21以下的设备。对于API级别21及以上的设备,可以直接使用setImageTintList()方法。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),该产品提供了丰富的移动应用数据分析功能,可帮助开发者深入了解用户行为和应用性能,优化移动应用的用户体验。了解更多信息,请访问腾讯云移动应用分析产品介绍页面:腾讯云移动应用分析

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在Windows系统使用Object Detection API训练自己的数据?

前言 之前写了一篇如何在windows系统安装Tensorflow Object Detection API? 然后就想着把数据集换成自己的数据集进行训练得到自己的目标检测模型。...于是就自己来撸一篇教程,方便自己也给别人一些参考吧~ 目录 基于自己数据集进行目标检测训练的整体步骤如下: 数据标注,制作VOC格式的数据集 将数据集制作成tfrecord格式 下载预使用的目标检测模型...数据标注,制作VOC格式的数据集 数据集当然是第一步,在收集好数据后需要进行数据的标注,考虑到VOC风格,这里推荐使用LabelImg工具进行标注。 ?...(这是github生成文件的修改版) # 将CSV文件和图像数据整合为TFRecords """ name: generate_tfrecord.py Usage: # From tensorflow...(当然object_detection API安装是大前提,具体看上一篇文章!)

1.5K40

Android高版本API方法如何在低版本系统做兼容性处理浅析

TelephonyManager)context.getSystemService(TELEPHONY_SERVICE); state =tm.getDataNetworkType(); 但是报错了Call requires API...level 24 (current min is 21): android.telephony.TelephonyManager#getDataNetworkType Android 版本更替,新的版本带来新的特性...新的方法带来许多便利,但无法在低版本系统运行,如果兼容性处理不恰当,APP在低版本系统,运行时将会crash。...处理方法 1.添加@RequiresApi(api = Build.VERSION_CODES.N) 2.添加@TargetApi(Build.VERSION_CODES.N) 3.添加@SuppressLint...Build.VERSION_CODES.N) { tm.getDataNetworkType(); } 5.在低版本通过其他方法实现该功能 总结 第一、第二、第三种方法只是能编译通过,到了低于API24

1.8K31

IM通讯协议专题学习(六):手把手教你如何在Android从零使用Protobuf

本文基于我对Protobuf在Android端的实际使用心得,手把手教你如何在Android端IM产品中使用Protobuf,希望对你有帮助。...《IM通讯协议专题学习(六):手把手教你如何在Android从零使用Protobuf》(* 本文)《IM通讯协议专题学习(七):手把手教你如何在NodeJS中从零使用Protobuf》《IM通讯协议专题学习...(八):金蝶随手记团队的Protobuf应用实践(原理篇)》《IM通讯协议专题学习(九):手把手教你如何在iOS从零使用Protobuf》3、Protobuf 介绍----图片Protobuf的全称是...7、Protobuf 转 Java 文件----首先我们要明白一点:Protobuf 是一种与平台,语言无关的数据存储格式,因此我们要在其它语言:Java,Kotlin,Dart 等语言中使用它,则必须将...因此,上面我讲的这些内容如果你都掌握了,基本就能满足Android使用Protobuff进行日常开发了。好了,本篇文章到这里就结束了,如果有啥问题,欢迎评论区一起交流。

2.8K60

Android Jetpack系列——DataBinding 最佳实践

注解值可以是已有的 xml 属性,例如 android:src、android:text等,也可以自定义属性然后在 xml 中使用。 列官方示列当中,就介绍了个 「setPadding」 的例子。..., attribute = "android:tint", method = "setImageTintList")]) 这里需要注意的是,这个注解必须有三个属性。...不能在同一表达式中使用不同的类型,列如下的错误示范: <View android:background="@{isError ?...列,我们有个View既没有android:xxx=""或者app:xxx=""属性,也没有setXxx()方法,我们通过@BindingAdapter同样可以实现自定义android:xxx=""或者...还有一点注意的是,我们设置glide的时候,别忘了在AndroidManifest文件当中把权限设置

1.9K40

学(kao)习(bei)官方关于64k异常处理 ^_^

注:如果项目配置时所面向的 Dalvik 可执行文件分包使用的是 minSdkVersion 20 或更低版本,并且将其部署到运行 Android 4.4(API 级别 20)或更低版本的目标设备,则...二、Android 5.0 及更高版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)及更高版本使用名为 ART 的运行时,后者原生支持从 APK 文件加载多个 DEX...可执行文件分包的应用可能无法在运行的平台版本早于 Android 4.0(API 级别 14)的设备启动。...尽管 Android 4.0(API 级别 14)提高了分配限制,但在 Android 5.0(API 级别 21)之前的 Android 版本,应用仍有可能遭遇这一限制。...该情况不应出现在直接从应用代码访问的代码,因为构建工具能识别这些代码路径,但可能在代码路径可见性较低(使用的库具有复杂的依赖项)时出现。

93820

Android Data Binding(数据绑定)用户指南

Data Binding库不仅灵活而且广泛兼容- 它是一个support库,因此你可以在所有的Android平台最低能到Android 2.1(API等级7+)使用它。...最常见的是在Binding类使用静态方法.inflate方法载入View的层次结构并且绑定到它只需这一步。...Binding在View层次结构做单一的传递,提取带ID的Views。这种机制比起某些Views使用findViewById还要快。...例如,android:tint属性与setImageTintList相关联,而不与setTint相关。...例如,它支持以下功能: 语法高亮 标记表达式的语法错误 XML代码补全 引用,包括navigation(导航到声明处)以及快速文档查询 注意: 数组以及通用类型,比如说Observable类,可能会显示错误事实并没有错误

2K80

Android Study 之学(kao)习(bei)官方关于64k异常处理 ^_^

注:如果项目配置时所面向的 Dalvik 可执行文件分包使用的是 minSdkVersion 20 或更低版本,并且将其部署到运行 Android 4.4(API 级别 20)或更低版本的目标设备,则...二、Android 5.0 及更高版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)及更高版本使用名为 ART 的运行时,后者原生支持从 APK 文件加载多个 DEX...可执行文件分包的应用可能无法在运行的平台版本早于 Android 4.0(API 级别 14)的设备启动。...尽管 Android 4.0(API 级别 14)提高了分配限制,但在 Android 5.0(API 级别 21)之前的 Android 版本,应用仍有可能遭遇这一限制。...该情况不应出现在直接从应用代码访问的代码,因为构建工具能识别这些代码路径,但可能在代码路径可见性较低(使用的库具有复杂的依赖项)时出现。

79910

AnimatedVectorDrawable学习以及使用

前言 一篇,我们了解了SVG以及静态Vector图像使用,坐标地址如下: 聊聊有关SVG那些事儿 而今天,我们了解一下有关使用动态Vector使用的那点事儿。...PS:主要注意的是,动态Vector图像只能在Api 21以上使用,So,如果想要低版本也使用的话,必须做兼容,否则直接奔溃了~ So,一起来看本文目标。...本文目标 通过举例说明如何使用动态Vector图像以及如何兼容低版本,从而让你不经意间学会使用要领。 实现效果 ?...兼容性开发怎么玩 上图很easy,提示我们这个东西只能在Android api 21以上使用,也就是5.0,当然你可以直接忽略此警告,直接运行在5.0以上的api毫无问题,当然,最好还是将此文件放置在drawable-v21...那么如何在低版本运行呢?

95740

Jetpack Compose Beta 版现已发布!

时机正好,不妨趁现在开始学习 Compose,并着手规划今年 1.0 版发布之后,您将如何在接下来的项目或功能中使用该工具包。...的完成度;换言之,所有基础 API 均已构建完成,我们能够在此基础,继续针对 1.0 及更高版本进行构建。...Composable Android Emulator 的 Live Literals (实时文字) 适用于 Jetpack Compose 的布局检查器 兼容现有应用 Jetpack Compose...Compose 完全使用 Kotlin 构建,可利用其优秀的 语言特性 提供功能强大、简洁且直观的 API。例如,借助 协程,我们可以编写更简单的异步 API描述手势、动画或滚动。...现在时机正好,不妨开始学习 Jetpack Compose,并规划如何在接下来的项目中使用该工具包。

5.6K10

Android 样式系统 | 主题背景覆盖

范围 在 一篇文章 中,我们提到: 任何一个拥有或者自己本身就是 Context ( Activity,View or ViewGroup) 的对象都可以通过访问 Context 的属性来获取 主题背景...任何在主题背景 Foo 中有指定,但是在主题背景 Bar 中未指定的属性也被应用于此 Button。...实际,您可以认为在应用中可以使用两种 "类型" 主题: "完整" 主题背景。 它们定义了一个屏幕所需的一切。...21+ 开始生效,VectorDrawables 可以通过 Jetpack 从 API 14+ 开始生效),则应确保使用正确的 Context 来加载 Drawable。...使用 android:theme 标签为布局中的分段设置主题背景,并仅在您需要调整属性的地方使用主题背景覆盖。

1.4K10

FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库

​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在...1、下载Linux版本的android-ndk-r21e登录Linux服务器(比如华为云的欧拉系统),依次执行下面的命令。...cd /usr/local/srccurl -O https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zipunzip...android-ndk-r21e-linux-x86_64.zip2、上传FFmpeg相关库的源码重新解压FFmpeg相关库的源码,包括FFmpeg、x264、freetype、lame等,并修改FFmpeg...$API" >> config.mak改为下面这行: echo "SONAME=libx264.so" >> config.mak保存并退出configure文件,再依次执行下面的编译命令:.

14910

Android:检测网络状态&监听网络变化

版本23及以上时调用此方法进行网络的检测 //步骤非常类似 public void checkState_21orNew(){ //获得ConnectivityManager对象...监听网络变化 使用BroadcastReceiver广播接收器来接收网络状态(采用系统广播) BroadcastReceiver作为Android四大组件之一; 如果不懂得如何使用BroadcastReceiver...是不是小于23,因为到了API23之后getNetworkInfo(int networkType)方法被弃用 if (android.os.Build.VERSION.SDK_INT...大于23时使用下面的方式进行网络监听 }else { System.out.println("API level 大于23"); //获得...总结 相信大家已经非常了解改如何检测网络状态&监听网络变化 接下来,我会继续介绍具体如何在Android中的其他知识,有兴趣可以继续关注Carson_Ho的安卓开发笔记 ---- 请帮顶 / 评论点赞!

15.1K22
领券