如何在Android活动中显示4x4网格的可点击图像?

如何在Android活动中显示4x4网格的可点击图像?,android,android-layout,Android,Android Layout,我正在创建一个简单的单页应用程序,它将显示一个4x4网格的图像,并在单击图像时执行一些操作。我想知道最好的方法是什么 我曾考虑在gridlayoutmanager中使用recyclerview,但我认为这对我的情况来说有点过分。我不希望它是可滚动的,我希望它适合整个4x4网格在屏幕上,它将永远只有4x4 我要找的是网格布局吗?每个单元格中都有ImageView?更好的是,我喜欢CardView的外观。我可以在每个单元格中放置一个带有ImageView的CardView吗 任何建议都将不胜感激。如

我正在创建一个简单的单页应用程序,它将显示一个4x4网格的图像,并在单击图像时执行一些操作。我想知道最好的方法是什么

我曾考虑在gridlayoutmanager中使用recyclerview,但我认为这对我的情况来说有点过分。我不希望它是可滚动的,我希望它适合整个4x4网格在屏幕上,它将永远只有4x4

我要找的是网格布局吗?每个单元格中都有ImageView?更好的是,我喜欢CardView的外观。我可以在每个单元格中放置一个带有ImageView的CardView吗


任何建议都将不胜感激。

如果您的观点永远不会离开屏幕,那么使用回收视图是没有意义的。 用XML制作布局。将您的ImageView永久放在那里。 但是许多图像视图可能会占用大量内存,这取决于它们的分辨率。 它们在内存中作为未压缩位图处理

使用glide显示图像以优化内存使用。

对于非常简单的4x4,您可以使用垂直线性布局,内部有两个水平线性布局。在每个水平布局中设置两个ImageView。将每个图像宽度设置为与父对象匹配

垂直线性布局 水平线性布局 ImageView-宽度:匹配父对象 ImageView-宽度:匹配父对象 水平线性布局 ImageView-宽度:匹配父对象 ImageView-宽度:匹配父对象 表或相对布局可能会节省膨胀多个线性布局的内存,但这将是快速和肮脏的方式

希望有帮助。

在GridLayoutManager中使用GridView或RecyclerView。将元素总数设置为4。要禁用滚动,请使用以下命令-

recyclerView.setOnTouchListener(new View.OnTouchListener(){
       @Override
        public boolean onTouch(View v, MotionEvent event) {
            return event.getAction() == MotionEvent.ACTION_MOVE;
        }

    });

并为适配器类中的每个映像设置OnClickListener以执行单击操作。一个有效的方法。

我在我的应用程序中使用了一个2x2,它由4个ImageView组成,并且不可滚动,但我在选项卡菜单中使用了它们,它非常完美。如果您想要实现同样的目标,那么我可以与4x4共享我的代码,或者您也可以使用ConstraintLayout生成它们。我这样问是因为你可以自己实现这一点。那么你想要代码吗?使用GridView,我可以使它不可滚动,并随屏幕大小缩放吗?我希望4x4网格在提供的空间中尽可能大,并且始终可以看到所有4x4单元。