安卓重叠图片视图

4
我想创建这样一个视图,其中交叉点应该是单独的图像视图,因为我希望它可点击。我怎么能做到这一点?
如果我有一个动态图像列表并且我正在以编程方式创建图像视图,那将非常好,如果我现在可以添加重叠的图像视图。
提前感谢! enter image description here
4个回答

3
使用FrameLayout可以使视图重叠。

例如:

FrameLayout frame = (FrameLayout) findViewById(R.id.frame);
ImageView image = new ImageView(this);
iv.setImageResource(R.drawable.image);
ImageView cross = new ImageView(this);
i.setImageResource(R.drawable.cross);

FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        layoutParams.gravity = Gravity.RIGHT | Gravity.TOP;
i.setLayoutParams(layoutParams); 
frame.addView(image);
frame.addView(cross);

1
谢谢,这对我有所帮助,只是我需要做一些小改动! - Vyper

0
动态创建一个RelativeLayout,其中包含两个ImageViews。将您的图像放在第一个中,将您的第二个图像放在第二个中。相应地调整边距以将其放置在右上角。

0
如果您创建了一个视图列表,仍然可以通过仅在需要时填充它来使用XML - 只需观看“listView的世界”讲座以正确地执行此操作。使用ListView比创建与要显示的项目数量相同的视图要高效得多(例如,如果有100个图像要显示,则只需要创建屏幕上的那些)。
无论如何,xml可以包含FrameLayout或RelativeLayout作为根视图,您只需根据所需的正确位置放置2个imageViews即可。您可以使用UI设计师进行此操作,也可以通过添加较大图像的margin-top来编辑XML本身。另外,请确保较大的图像写在小图像之前。
至于点击,您可以在小imaveView上使用setOnClickListener。
顺便说一下,如果只是图片,您应该使用GridView而不是ListView。

只需要查看这个问题的解决方案:http://stackoverflow.com/questions/22790003/horizontal-scroll-over-a-list-of-image-views这就是我不得不这样做的原因。我通过水平滚动视图来解决这个问题,将其根元素设置为线性布局,在线性布局中我编程添加了这些图像。 - Vyper
好的,我已经为你展示的问题添加了一个答案。希望这可以帮到你。 - android developer

0

首先创建一个全新的布局,用作占位符,例如“partial_layout.xml”。然后在您的代码中,使用以下类似的代码创建一个LayoutInflater:

LayoutInflater mInflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE);

然后尝试使用类似以下方式获取此布局的新副本:

View convertView = mInflater.inflate(R.layout.partial_layout, null);

现在将您当前的数据放入此视图中,最后将此视图添加到您的内容视图中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接