gpt4 book ai didi

安卓动态图像

转载 作者:行者123 更新时间:2023-11-29 22:01:27 25 4
gpt4 key购买 nike

我有 10 个图像浏览量:

ImageView Card0=(ImageView)findViewById(R.id.Card0);
.....
ImageView Card9=(ImageView)findViewById(R.id.Card9);

所有图像都在我的可绘制文件夹中,但我正在从远程数据库中选择卡片。一个 php 脚本生成 10 张随机卡片。

我有包含文件名的数组:

Cards = deal.split(":");

现在我要设置图像:

Card0.setImageResource(R.drawable.Cards[0]);

我已经尝试并搜索了很多但无法设置任何变量 setImageResource(R.drawable.*Variable*);

有人请帮助。

最佳答案

无法使用 R.id.drawable.* 动态加载。

解决方案一:

我假设您的卡片图像的名称是:card0.png、card1.png ... card9.png我建议您创建一个 assets 目录(在 res 目录内)。将卡片图像复制到 assets 目录。

import android.app.Activity;
import android.content.res.AssetManager;
import android.graphics.drawable.Drawable;

import java.io.InputStream;
import java.io.IOException;

public class YourActivity extends Activity {

//...

public Drawable loadAssetImage(String fileName) {
AssetManager assetMgr = this.getAssets();

try {
InputStream is = assetMgr.open(fileName);
Drawable d = Drawable.createFromStream(is, null);
return d;
}catch( IOException e ) {
// error...
return null;
}
}
}

loadAssetImage() 方法从 assets 目录加载图像。因此,现在您可以动态加载图像,因为它接受字符串参数。

请注意,目录名称必须是 assets。 Android 允许直接(原始)访问 assets 目录中的内部资源。

方案二

public Drawable loadCardImage(int index) {
switch( index ) {
case 0:
return android.R.Card0;

case 1:
return android.R.Card1;

..
case 9:
return android.R.Card9;
}
return null;
}

您将从服务器接收卡片的索引。此函数将返回适当的资源。

关于安卓动态图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11810301/

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