将相同的 ImageView 多次添加到布局中

发布于 2024-11-30 10:50:30 字数 219 浏览 2 评论 0原文

我想在运行时将相同的 ImageView 多次添加到我的布局中。我尝试定义 ImageView(size,position,...) 并使用 LAYOUT.addView(IMAGEVIEW) 添加它。但是,如果我尝试第二次添加它(同一布局中的不同位置),它不起作用。似乎位图的相同引用 ID 不能两次添加到布局中。

我发现了问题。我的位图太大了。如果我减小位图的大小,它就会起作用。不管怎样,谢谢你的帮助。

I would like to add the same ImageView several times to my Layout during runtime. I tried to define the ImageView(size, position, ...) and add it with LAYOUT.addView(IMAGEVIEW). However, if I try to add it a second time (different position in the same layout), it does not work. It seems like the same reference-id of a bitmap can not be added twice to a layout.

I found the problem. My bitmaps were too big. If I reduce the sizes of the bitmaps, it works. Anyway, thanks for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

﹂绝世的画 2024-12-07 10:50:30

这个课程应该有帮助:

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;
}

}

This class should help:

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;
}

}

夏花。依旧 2024-12-07 10:50:30

您不能多次添加视图的同一实例。您需要使用与第一个相同的参数创建第二个 ImageView。

You cannot add the same instance of a View multiple times. You'll need to create a second ImageView using the same parameters as the first.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文