-1

嗨,我正在尝试添加一个显示 4 个图像的活动(想象一个正方形切成四分之一),其中每个图像在单击时显示不同的图像,我尝试了一些使用图像按钮的布局但无济于事,但在这里阅读我的答案是使用图像寻呼机的网格视图,但是在实现此功能时,我得到的小图像在网格视图中间隔很远,请问有更好的方法吗?

4

2 回答 2

0

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

如果它需要是动态的网格布局可能是一个好主意......

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

(编辑:我的意思是gridview,gridlayout仅从api级别14开始可用)

于 2013-10-02T14:02:28.040 回答
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!!

希望有帮助!

于 2013-10-02T14:54:07.120 回答