Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当包含可绘图的整数变量传递给painterResource函数时,为什么Android中不呈现图像?

当包含可绘图的整数变量传递给painterResource函数时,为什么Android中不呈现图像?
EN

Stack Overflow用户
提问于 2022-12-04 05:12:32
回答 2查看 35关注 0票数 0

我需要根据特定的用户交互来显示不同的图像。因此,我将可绘制的资源ID存储在一个整数变量中。但是,当我将这个变量传递到图像的painterResource函数时,图像不会呈现。

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val img = R.drawable.img1
val img2 = R.drawable.img2

// imageToDisplay is assigned based on certain conditions.
var imageToDisplay = img

Image(painter = painterResource(imageToDisplay), contentDescription = null)
EN

回答 2

Stack Overflow用户

发布于 2022-12-04 05:20:34

解决此问题的一种方法是使用Image组件的“资源”属性访问可绘制资源。然后,可以使用getDrawable函数根据存储在imageToDisplay变量中的资源ID检索可绘制文件。

下面是如何修改代码以实现此目的的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val img = R.drawable.img1
val img2 = R.drawable.img2

// imageToDisplay is assigned based on certain conditions.
var imageToDisplay = img

Image(painter = painterResource(imageToDisplay), contentDescription = null)

或者,您也可以使用imageResource函数而不是painterResource来设置图像组件的可绘制资源。代码将如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val img = R.drawable.img1
val img2 = R.drawable.img2

// imageToDisplay is assigned based on certain conditions.
var imageToDisplay = img

Image(imageResource = imageToDisplay, contentDescription = null)
票数 1
EN

Stack Overflow用户

发布于 2022-12-04 07:30:03

您提供的代码正在使用可用的可绘图,除非您包含了更多的详细信息,我们只能猜测,但当您说

I需要根据特定的用户交互来显示不同的图像。…

…imageToDisplay是根据特定的条件分配的。

…当我将这个变量传递到图像的painterResource函数时,图像不会呈现。

我最好的猜测是,在执行某些条件操作时,由于某种原因,这些代码的可组合性不是重新组合的,也不是更新的。

再说一遍,我们只能猜测,所以你可以尝试这个或只是使用这个作为一个参考。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Composable
fun DynamicImageComposable() {

    val img = R.drawable.img
    val img2 = R.drawable.img

    // don't use ordinary variable, convert it to a mutable State instead
    var imageToDisplay by remember {
        mutableStateOf(img) // just use any drawable you want as the initial value
    }

    // when you change this to img2, this composable is expected to re-compose
    imageToDisplay = img

    Image(painter = painterResource(imageToDisplay), contentDescription = null)
}

逻辑有点无用,但它试图指出的是使用可变状态来进行可组合的重新组合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74675941

复制
相关文章
当flex容器中包含absolute元素时
我们设置了justify-content: center;,不同机型显示区别如下:
celineWong7
2020/11/05
3.7K0
深度学习中激活函数的导数在不连续可导时的处理
sigmoid函数是处处连续可导的。其他如ReLU,在0处不连续可导。实际上激活函数用ReLU的情况很多。
用户4363240
2019/12/18
3.1K0
深度学习中激活函数的导数在不连续可导时的处理
JS中页面跳转,传值包含中文时乱码解决方案
转自:http://blog.csdn.net/southcamel/article/details/7703317
forrestlin
2022/04/02
4.1K0
OpenCV 图像处理:常用绘图函数
linetype:线条的类型 8 型或 cv2.LINE_AA, 默认值为 8 型
timerring
2022/11/07
9330
OpenCV 图像处理:常用绘图函数
当expandlistview的getGroupView或者getChildView中包含checkbox时,前者点击不可用
当expandlistview的getGroupView或者getChildView中包含checkbox时,前者点击不可用。
103style
2022/12/19
2960
当使用 jquery 插件操作 input 时同步 vue 中绑定的变量办法
为什么要同步到 vue 上绑定的变量呢,因为如果我们不更新绑定的变量的值,vue 下次刷新组件的时候,就会将旧的值更新到 input 上。
前Thoughtworks-杨焱
2022/02/19
1.7K0
【MATLAB】基本绘图 ( 保存图像 | saveas 函数 )
saveas 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/saveas.html
韩曙亮
2023/03/29
1.8K0
【MATLAB】基本绘图 ( 保存图像 | saveas 函数 )
当elementui的el-dialog组件中包含子组件时,用refs调用子组件时的undefined问题
今天用elementui写了一个el-dialog组件里面包着一个el-transfer穿梭框组件, 代码
李维亮
2021/07/08
1.5K0
调用函数时,关于传参那些事~
                                                                         
The sky
2023/04/12
1.4K0
调用函数时,关于传参那些事~
[javaSE] 变量的传值与传址
基本数据类型:byte,short,int,long,double,float,char,boolean
唯一Chat
2019/09/10
1.6K0
13.1 函数中的变量
在函数中,我们可以看到也进行了变量的使用,那函数中的变量和函数外的变量到底有什么区别呢?
大牧莫邪
2018/08/27
1.4K0
Android | Compose 初上手
Jetpack Compose 是用于构建原生 Andorid 界面的新工具包,Compose 使用了更少的代码,强大的工具和直观的 Kotlin Api 简化并且加快了 Android 上界面的开发。
345
2022/06/12
5.4K0
Android | Compose 初上手
Java 中的为什么SIZE仅为整数和长整数@Native?
我了解注释的用法。 指示可以引用定义常量值的字段 来自本机代码。注释可被以下工具用作提示: 生成本机头文件以确定头文件是否 必需的,如果是,它应该包含什么声明。 然而,在阅读Java源代码时,我注意到在类@Native和Integer中,Long常量是SIZE而不是浮点、字节、双、短和字符。 请注意,大小常量表示用于表示实际值的位数。
JavaEdge
2020/05/27
8410
指针变量的传值和传址
解析:int func(int* pRes)函数的形参是指针类型 int *pRes,在函数体中 new了一块内存并赋值 12,将内存地址赋值给指针 pRes。在main函数中,定义了指针pInt,调用func函数,把pInt作为参数传入func函数中。结果*pInt并不是 12。
C语言与CPP编程
2020/12/02
2K0
指针变量的传值和传址
指针变量的传值和传址
解析:int func(int* pRes)函数的形参是指针类型 int *pRes,在函数体中 new了一块内存并赋值 12,将内存地址赋值给指针 pRes。在main函数中,定义了指针pInt,调用func函数,把pInt作为参数传入func函数中。结果*pInt并不是 12。
C语言与CPP编程
2020/10/22
2.8K0
Vue 中,如何将函数作为 props 传递给组件
作者:Michael Thiessen 译者:前端小智 来源:medium 点赞再看,养成习惯本文 GitHub https://github.com/qq44924588... 上已经收录,更多往
前端小智@大迁世界
2020/05/18
8.2K0
compose--初入compose、资源获取、标准控件与布局
compose正式发布已经一年多了,越来越多的开发人员选择使用它,声明式UI也是未来的一个主流趋势,本人也是一年前学习后,并没有真正的使用,所以本着边学习,边分享的心态,准备写个compose系列的文章 首先compose目前只支持kotlin,基于google对移动端的鸿图,未来应该也不会支持其他语言,和传统安卓的xml布局不同,compose是通过kotlin定义一个一个组件,由于是通过代码定义的组件,每个组件都可以很方便的重用,这点在UI开发时确实便利了不少。至于声明式UI和命令式UI的区别,相信你会在后续实际使用时有很大的感触
aruba
2022/12/06
6.4K0
compose--初入compose、资源获取、标准控件与布局
当Python退出时,为什么不清除所有分配的内存?
在讨论为什么 Python 在退出时不清除所有分配的内存之前,我们需要了解 Python 的内存管理机制。Python 使用一种称为 引用计数 的垃圾回收机制来管理内存。在这种机制下,每个对象都有一个引用计数器,记录着当前有多少个引用指向该对象。当引用计数器为 0 时,对象将被销毁,内存得以释放。然而,在 Python 退出时,并不会清除所有分配的内存。本文将探讨这个问题,并给出相应的解释。
疯狂的KK
2023/08/05
1.2K0
当Python退出时,为什么不清除所有分配的内存?
OpenGL ES编程指南(二)
GLKit框架提供了View和ViewController类,它们消除了OpenGL ES内容绘制和动画制作所需的设置和代码维护。 GLKView类管理OpenGL ES基础结构并为绘图代码提供位置,而GLKViewController类则为GLKit视图中的OpenGL ES内容的平滑动画提供渲染循环。 这些类扩展了用于绘制视图内容和管理视图表示的标准UIKit设计模式。 因此,您可以将精力主要放在您的OpenGL ES渲染代码上,并让您的应用程序快速启动并运行。 GLKit框架还提供了其他功能来简化OpenGL ES 2.0和3.0的开发。
Helloted
2022/06/07
1.9K0
OpenGL ES编程指南(二)
点击加载更多

相似问题

使用可绘图和图像资源时呈现的不同?ImageButton - Android

10

当将整数结果传递给整数类型变量时,类型不匹配

23

当重新呈现UIView布局时,不会触发绘图函数。

14

当textfield中包含整数时,按钮不启用/禁用

15

当从可绘图加载图像时,列表滚动速度变慢

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文