0

我没有在其他主题中找到我的问题的答案。

我有一个带有背景可绘制对象的 ImageView。这个 ImageView 上有一个 onTouchListener,可以拖动它。我现在想向这个视图添加一个 ImageResource(连同一个填充)。图像应始终位于(方形)ImageView 的中间。现在的问题是:如果我将整个 ImageView 拖出显示器,则 ImageView 中的 Image 开始缩小/调整大小。当我将它拖回窗口时,它开始再次增长到允许的大小(因为有填充)。

拖出窗口时,如何防止调整此图像的大小?

RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
ImageView i = new ImageView(this);
i.setPadding(10);
i.setImageResource(R.drawable.image);
i.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg));
i.setPositionAndSize(0, 0); // creates layout params and positions
                            // it with margins in relative layout
i.setOnTouchListener(touch);
layout.addView(i);
4

1 回答 1

0

如果此相对布局在 layout_width 或 height 上具有 WrapContent 属性,则这些属性将动态更改。

添加视图时,您正在修改其内容,等等这些属性。

您需要像这样将布局属性设置为此 imageView。你要设置的positionAndSize,必须在layout params的属性中设置:

 RelativeLayout.LayoutParams lyp = new  RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
ImageView i = new ImageView(this);
            (the properties you want the parent of the view (layout) to receive must be setted here in "lyp"). 
i.setLayoutParams(lyp);
layout.addView(i,lyp);

请记住,如果您在相对布局上添加某些内容,则这些属性是必需的。

相对布局旨在使内容适合 FIXED 高度和宽度,因此请尝试在布局中修复这些属性。

希望有帮助!!

于 2013-05-10T11:43:46.070 回答