You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中Drawable数组实现及类型转换错误求助

问题解决:Drawable无法转换为int错误

错误原因

你调用的getResources().getDrawable(int id, Theme theme)方法,第一个参数要求是Drawable资源的int型ID(比如R.drawable.ic_launcher),但你的imageArray[index]并非int类型,导致类型不匹配触发报错。

针对性解决方案

根据imageArray的实际类型,分两种情况处理:

情况1:imageArray是存储资源ID的int数组

如果你的数组定义是类似int[] imageArray = {R.drawable.img1, R.drawable.img2, R.drawable.img3};,先确认数组每个元素都是R.drawable下的int型资源ID。同时推荐使用兼容性更好的ContextCompat方法替代旧API:

Drawable ima = ContextCompat.getDrawable(this, imageArray[index]);
image.setImageDrawable(ima);

情况2:imageArray是Drawable类型数组

如果你的数组直接存储Drawable对象(比如Drawable[] imageArray = {getResources().getDrawable(R.drawable.img1), ...};),无需再调用getDrawable,直接取用数组元素即可:

// 直接使用数组中已有的Drawable对象
image.setImageDrawable(imageArray[index]);

另外注意代码里的逻辑一致性问题:你判断index越界时用了imageList1.size(),但遍历的是imageArray,这里应该统一为imageArray.length,避免逻辑错误:

if(index > imageArray.length - 1){
    index = 0;
}

内容的提问来源于stack exchange,提问作者matias villegas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 20:07:40