2014-04-01 197 views
3

我想创建这种视图,其中交叉应该是单独的图像视图,因为我希望它是可点击的。我怎样才能做到这一点?Android重叠图像视图

这将是伟大的如果我可以编程创建此视图,因为我是一个动态列表的图像,我正在编程创建图像视图。我现在需要的仅仅是添加重叠的图像视图

在此先感谢

enter image description here

回答

2

使用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

首先创建一个全新的结构布局,例如“partial_layout.xml”的占位符使用。然后在你的代码首先做一个LayoutInflater像这样的东西:

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

然后尝试像这样的东西来获得此布局的新副本:

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

现在把你当前的数据这一观点,并最终将此视图添加到您的内容视图。

0

如果您创建了一个视图列表,您仍然可以通过仅在需要时才使用XML来扩展它 - 只需观看演讲“listView的世界”即可正确执行。使用ListView比创建许多视图效率要高得多(例如,如果要显示100个图像,只有在屏幕上需要创建的图像)。

无论如何,xml可以包含FrameLayout或RelativeLayout作为根视图,并且您只需根据您希望拥有的正确位置放置2个imageView。您可以为此使用UI设计器,或者通过为较大图像添加margin-top来编辑XML本身。另外,确保在较小的图像之前写入较大的图像。

至于点击,你可以在小imaveView上使用setOnClickListener。

顺便说一句,如果它只是图像,你应该使用GridView而不是ListView。

+0

只需要通过这个问题http://stackoverflow.com/questions/22790003/horizo​​ntal-scroll-over-a-list-of-image-views 这就是我必须这样做的原因。我通过水平滚动视图以其根元素作为线性布局解决了这个问题,并且在线性布局中我正在编程式地添加这些图像 – Vyper

+0

好的,我已经为您向我展示的问题添加了一个答案。希望这可以帮助。 –