Добавить один и тот же ImageView несколько раз в макет - PullRequest
2 голосов
/ 21 августа 2011

Я хотел бы добавить один и тот же ImageView несколько раз в свой макет во время выполнения.Я попытался определить ImageView (размер, положение, ...) и добавить его с LAYOUT.addView (IMAGEVIEW).Однако, если я попытаюсь добавить его во второй раз (разные позиции в том же макете), это не сработает.Похоже, один и тот же ссылочный идентификатор растрового изображения нельзя добавить в макет дважды.

Я обнаружил проблему.Мои растровые изображения были слишком большими.Если я уменьшу размеры растровых изображений, это сработает.В любом случае, спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 06 ноября 2012

Этот класс должен помочь:

public class MyImageView implements Cloneable {

public MyImageView(Context ctx){
    super(ctx);
}
public Object clone(){
    try{
        MyImageView obj = new MyImageView(this.getContext());
        obj.setImageDrawable(this.getDrawable());
        obj.setScaleType(this.getScaleType());
        try{
            obj.setLayoutParams(this.getLayoutParams());    
        }catch(Exception e){

        }

        obj.setId((int)(Math.random() * 100));

    } catch (CloneNotSupportedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return obj;
}

}

1 голос
/ 21 августа 2011

Вы не можете добавить один и тот же экземпляр View несколько раз.Вам нужно будет создать второй ImageView, используя те же параметры, что и первый.

...