【问题标题】:which layout displays multiple image buttons?哪种布局显示多个图像按钮?
【发布时间】:2013-10-08 22:16:45
【问题描述】:

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

【问题讨论】:

    标签: android image button layout


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 希望我也可以将您的标记为正确,因为它也提供了我想要的,抱歉有点含糊,认为它需要像我想要的那样简单(而且我是业余爱好者) 你的回答又完成了
    • 这就是我最终要做的,并将修改为正确的嘲笑,但我现在想知道,我已经这样做了,我的图像缩放非常糟糕,有没有比位图工厂更简单的缩放方法,猜测这是这样做的方法,但我无法理解它
    • 您可以使用 Bitmap.createScaledBitmap (developer.android.com/reference/android/graphics/…, int, int, boolean)) 不过我不确定效率或质量。如果缩放不好是指缩放 bmp 的定位,您还应该查看图像视图的 ScaleType (developer.android.com/reference/android/widget/…) 一般来说,在处理大图像时查看developer.android.com/training/displaying-bitmaps/… 是个好主意...
    【解决方案2】:

    您可以使用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!!
    

    希望有所帮助!

    【讨论】:

    • 天哪,这正是我在@karvoynistas 你是一个传奇之后的样子!
    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多