如何以编程方式创建ImageView对象的多个副本?

时间:2013-03-28 20:18:28

标签: android imageview clone inflate

我有一个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); 上 错误“找不到来源。”

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

activity_main.xml中

<LinearLayout
    android:id="@+id/linear"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">
</LinearLayout>

MainActivity.java

ImageView iv;
LinearLayout linear;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    linear = new LinearLayout(this);
    linear = (LinearLayout)findViewById(R.id.linear);

    for(int i=1;i<10;i++)
    {
        iv = new ImageView(this);
        iv.setImageResource(R.drawable.plus);
        iv.setPadding(0,0,0,20);
        linear.addView(iv);
    }
}

app视图看起来像这样 app view

答案 1 :(得分:-1)

ImageView imageview=new ImageView(context);

imageview=yourimageview //原始

的副本

对于你的问题,试试这个

View[] tiles = new ImageView[9];
ImageView testview= (ImageView)findViewById(R.id.testview);

for (int i = 0; i<tiles.length; i++) {
            tiles[i] = new Imageview(context);
        }