LinearLayout 不显示以编程方式添加的图像
LinearLayout not displaying images added programmatically
我正在尝试用红心线表示玩家当前的生命数。这是我的代码:
LifeGraphics.java
public class LifeGraphics {
public static ArrayList<ImageView> getLiast(Context context){
ImageView life1 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life2 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life3 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life4 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life5 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView[] inRetrunList = new ImageView[] {life1, life2, life3, life4, life5};
ArrayList<ImageView> returnList = new ArrayList<>();
returnList.addAll(Arrays.asList(inRetrunList));
return returnList;
}
}
GameActivity.java(摘录):
ArrayList<ImageView> livesGraphicsList = LifeGraphics.getLiast(getApplicationContext());
LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout);
for(int i = 0; i < lives; i++){
layout.addView(livesGraphicsList.get(i), (i + 1));
}
结果如下:
当他们失去一条生命时,数字会适当下降,图像会在最后一条生命后消失。还记录 layout.getChildCount() 给我 6(我猜是 textview 和 5 添加的 imageView)。谁能解释一下为什么屏幕上没有显示。
提前致谢。
您仅将图像设置为第一个 ImageView。更准确地说,你设置了 5 次。
ImageView life1 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life2 = new ImageView(context);
life1.setImageResource(R.mipmap.heart); //Should be life2
ImageView life3 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);//Should be life3
ImageView life4 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);//Should be life4
ImageView life5 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);//Should be life5
我正在尝试用红心线表示玩家当前的生命数。这是我的代码:
LifeGraphics.java
public class LifeGraphics {
public static ArrayList<ImageView> getLiast(Context context){
ImageView life1 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life2 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life3 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life4 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life5 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView[] inRetrunList = new ImageView[] {life1, life2, life3, life4, life5};
ArrayList<ImageView> returnList = new ArrayList<>();
returnList.addAll(Arrays.asList(inRetrunList));
return returnList;
}
}
GameActivity.java(摘录):
ArrayList<ImageView> livesGraphicsList = LifeGraphics.getLiast(getApplicationContext());
LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout);
for(int i = 0; i < lives; i++){
layout.addView(livesGraphicsList.get(i), (i + 1));
}
结果如下:
当他们失去一条生命时,数字会适当下降,图像会在最后一条生命后消失。还记录 layout.getChildCount() 给我 6(我猜是 textview 和 5 添加的 imageView)。谁能解释一下为什么屏幕上没有显示。
提前致谢。
您仅将图像设置为第一个 ImageView。更准确地说,你设置了 5 次。
ImageView life1 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);
ImageView life2 = new ImageView(context);
life1.setImageResource(R.mipmap.heart); //Should be life2
ImageView life3 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);//Should be life3
ImageView life4 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);//Should be life4
ImageView life5 = new ImageView(context);
life1.setImageResource(R.mipmap.heart);//Should be life5