Java Can';无法在活动中动态显示ImageView
我已经试了几个小时了,在stackoverflow上寻找解决方案。 所有对其他人有用的解决方案,对我都不起作用,所以也许我在这里遗漏了一些东西Java Can';无法在活动中动态显示ImageView,java,android,imageview,dynamically-generated,Java,Android,Imageview,Dynamically Generated,我已经试了几个小时了,在stackoverflow上寻找解决方案。 所有对其他人有用的解决方案,对我都不起作用,所以也许我在这里遗漏了一些东西 public void show(View layout){ RelativeLayout linear = (RelativeLayout)layout.findViewById(R.id.linear); for(int i = 0; i < map.size(); i++){ for(int j = 0
public void show(View layout){
RelativeLayout linear = (RelativeLayout)layout.findViewById(R.id.linear);
for(int i = 0; i < map.size(); i++){
for(int j = 0; j < map.get(i).size(); j++){
ImageView image = new ImageView(context);
switch(map.get(i).get(j)){
case 0:
image.setImageDrawable(context.getDrawable(R.drawable.black));
break;
case 1:
image.setImageDrawable(context.getDrawable(R.drawable.white));
break;
}
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(32,32);
params.setMargins(j * 32, i * 32, 0, 0);
image.setLayoutParams(params);
image.invalidate();
linear.addView(image);
}
}
}
公共作废显示(视图布局){
RelativeLayout linear=(RelativeLayout)布局。findViewById(R.id.linear);
对于(int i=0;i
它必须绘制的图像是从带有0和1的文本文件中读取的。
因为下面的函数是一个类,而不是一个活动,所以我传递了ImageView必须包含的布局
已解决: 我就是这样修复的:
public void show(View layout){
RelativeLayout linear = (RelativeLayout)layout.findViewById(R.id.linear);
int imageRes;
for(int i = 0; i < map.size(); i++){
for(int j = 0; j < map.get(i).size(); j++){
ImageView image = new ImageView(context);
switch(map.get(i).get(j)){
case '0':
imageRes = R.drawable.black;
break;
case '1':
imageRes = R.drawable.white;
break;
default:
imageRes = R.drawable.white;
break;
}
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(32,32);
params.setMargins(j * 32, i * 32, 0, 0);
image.setLayoutParams(params);
image.setBackgroundResource(imageRes);
linear.addView(image);
}
}
公共作废显示(视图布局){
RelativeLayout linear=(RelativeLayout)布局。findViewById(R.id.linear);
int imageRes;
对于(int i=0;i
为什么不直接使用LinearLayout
而不是RelativeLayout
?@Jesper Klippel您显示的代码是正确的,没有任何工作,所以我的假设是,在调试和检查之前,您没有从映射数组或文本文件中获取正确的数据,因为有人在另一个堆栈中尝试了这一点,所以将其更改为RelativeLayout溢出帖子做到了。我修复了它,我会编辑帖子!@Sandy是的,真的很奇怪,数组填充正确,它得到的数据正确(记录在监视器中),但不知怎么的,图像无法绘制。不过我有一个解决方案,它在第一篇帖子中。