【发布时间】:2013-03-28 20:18:28
【问题描述】:
我有一个 ImageView 对象,R.id.tile,在我的 XML 布局中定义,我想做的是创建它的克隆并将它们中的每一个放置在不同的坐标处。
这是我目前所拥有的:
protected void onCreate(Bundle savedInstance)
{ super.onCreate(savedInstance);
setContentView(R.layout.board_layout);
layout = (AbsoluteLayout)findViewById(R.id.board);
img = (ImageView)findViewById(R.id.tile);
View[] tiles = new ImageView[9];
for (int i = 0; i<tiles.length; i++) {
tiles[i] = (ImageView)findViewById(R.id.tile);
}
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
tiles[i+j].setX((float) 32*2*i);
tiles[i+j].setY((float) 34.39*2*j);
}
}
...
但是当我调试它时,它一直停在 tiles[i] = (ImageView)findViewById(R.id.tile);
出现错误“找不到源。”
有什么想法吗?
【问题讨论】:
-
您尝试使用原始 ImageView 的克隆而不是制作新的并将其 Image 设置为相同是否有特定原因?我认为后一种方法会容易得多。然后,您可以致电
layout.addView(tiles[i]);将新的添加到您的布局中。 -
@FoamyGuy 可能是他不想以编程方式为所有这些设置原始图像视图获取的所有属性或样式,例如高度、宽度等。
-
@Pragnani 可能,如果是这种情况,那么他可以在其 on layout.xml 文件中声明 ImageView,然后使用 LayoutInflater 创建新的,这将使它们全部预先设置到所需的配置。
-
@FoamyGuy 是的...同意..
标签: android imageview clone inflate