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

时间:2017-08-09 02:52:38

标签: android android-layout

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

我在考虑使用带有gridlayoutmanager的recyclerview,但我认为这对我的情况来说有点多了。我不希望它可滚动,我希望它适合屏幕上的整个4x4网格,它总是只有4x4。

GridLayout是我正在寻找的,每个单元格中都有imageview吗?更好的是,我喜欢CardView的外观。我可以在每个单元格中放入一个带有ImageView的CardView吗?

任何建议都表示赞赏。

3 个答案:

答案 0 :(得分:1)

如果您的观点永远不会离开屏幕,那么无法回收再见。 用XML格式化布局。将您的图像视图永久存在。 但是根据它们的分辨率,许多图像视图可能占用大量RAM。 (它们在内存中作为未压缩的位图处理)

使用滑动显示图像以优化内存使用。 https://github.com/bumptech/glide

答案 1 :(得分:0)

对于一个非常简单的4x4,你可以使用一个垂直的LinearLayout,里面有两个水平的LinearLayout。在每个水平布局中设置两个ImageView。将每个图像宽度设置为match_parent。

  • vertical LinearLayout
  • 水平LinearLayout
  • ImageView - width:match_parent
  • ImageView - width:match_parent
  • 水平LinearLayout
  • ImageView - width:match_parent
  • ImageView - width:match_parent

表格或相对布局可以节省多个线性布局膨胀的内存,但这将是快速而肮脏的方式。

希望它有所帮助。

答案 2 :(得分:0)

GridView使用RecyclerViewGridLayoutManager recyclerView.setOnTouchListener(new View.OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { return event.getAction() == MotionEvent.ACTION_MOVE; } }); 。将元素总数设置为4.要禁用滚动,请使用此 -

OnClickListener

并为适配器类中的每个图像设置var html = $(".container-fluid").html() var temp = "<div class='container'>"+html+"</div>" $(".container-fluid").html(temp) 以进行单击操作。一种有效的方法。