哪个布局显示多个图像按钮?

时间:2013-10-02 13:48:06

标签: android image button layout

您好我试图添加一个显示4个图像的活动(想象一个方形切割到四分之一),其中每个图像在点击时显示不同的图像,我尝试使用图像按钮的几个布局无效但是然后在这里阅读我的答案是使用图像寻呼机的网格视图,但在实现这一点时,我得到的网格视图中相隔很远的小图像有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

如果它总是2x2图像,你可以简单地使用垂直线性布局和两个水平布局,然后将你的图像作为ImageButton或ImageView放在水平布局中......

如果它需要是动态的,gridlayout可能是个好主意......

但是,如果您需要更详细的答案,则需要提供有关问题的详细信息......

(编辑:我的意思是gridview,gridlayout仅在api级别14之后可用)

答案 1 :(得分:0)

你可以使用RelativeLayout来添加你的ImageButtons并拥有所有控制权,以便按钮的位置,大小等。

另一种观点是将屏幕分成4个矩形(Rects)。 像这样:

Rect upLeftRect = new Rect(0,0,screenWidth/2 , screenHeight/2);
Rect upRightRect = new Rect(screenWidth/2,0,screenWidth,screenHeight/2);
Rect downLeftRect = new Rect(0,screenHeight/2, screenWidth/2 , screenHeight);
Rect downRightRect = new Rect(screenWidth/2, screenHeight/2, screenWidth,screenHeight);

在你的relativeLayout上附上一个onTouchListener,在你的构造函数中是这样的:

yourRelativeLayout.setOnTouchListener(this);

最后,在onTouch方法中你会有这样的东西:

@Override
public boolean onTouch(View v, MotionEvent e){
  if(upLeftRect.contains( ( int ) e.getX(), (int) e.getY){
    // do whatever you want, i guess that you want some alpha animation or something like this
  }else if(upRightRect.contains( (int) e.getX(), (int) e.getY(){
    // bla bla.. :)
  } // do the rest conditions your self!!

希望有所帮助!