我想创建这种视图,其中十字架应该是单独的图像视图,因为我希望它是可点击的。我怎样才能做到这一点?
这将是伟大的如果我可以编程创建此视图,因为我是一个动态的图像列表,我以编程方式创建图像视图。我现在需要的是添加重叠图像视图。
提前致谢
答案 0 :(得分: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 :(得分:0)
以编程方式创建RelativeLayout
,其中包含两个ImageViews
。将图像放在第一个图像中,将第二个图像放在第二个图像中。相应地调整边距以将其放在右上角。
答案 2 :(得分:0)
首先创建一个全新的布局以用作占位符,例如“partial_layout.xml”。然后在您的代码中首先使用以下内容创建LayoutInflater:
LayoutInflater mInflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE);
然后尝试使用以下内容获取此布局的新副本:
View convertView = mInflater.inflate(R.layout.partial_layout, null);
现在将您当前的数据放到此视图中,最后将此视图添加到您的内容视图中。
答案 3 :(得分:0)
如果您创建了一个视图列表,您仍然可以通过仅在需要时对其进行充气来使用XML - 只需观看讲座" listView"为了正确地做到这一点。使用ListView比创建与要显示的项目数量一样多的视图更有效(例如,如果要显示100个图像,则只需要创建屏幕上的那些图像)。
无论如何,xml可以包含FrameLayout或RelativeLayout作为根视图,你只需根据你想要的正确位置放置2个imageViews。您可以使用UI设计器,或通过为较大的图像添加margin-top来编辑XML本身。另外,请确保较小的图像在小图像之前写入。
对于单击,您可以在小imaveView上使用setOnClickListener。
顺便说一句,如果它只是图像,你应该使用GridView而不是ListView。