Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 动态更改GridView的大小_Java_Android_Android Gridview - Fatal编程技术网

Java 动态更改GridView的大小

Java 动态更改GridView的大小,java,android,android-gridview,Java,Android,Android Gridview,我正在为android开发一个应用程序,我有一个大的旧GridView,它在屏幕上垂直居中,所有单元格都可见 我想要的是一个函数,通过该函数,所有单元格都被放大3倍,让用户在gridview中滚动 如果你熟悉这个游戏,Wordfeud就是这么做的 我已经搜索了网络,但没有找到满意的解决方案,我设法找到了一种方法来改变我的网格瓷砖适配器中的布局参数,但它只是垂直拉伸,而不是水平拉伸,此外,整个应用程序会变得缓慢且无响应,直到您滚动列表并让网格重新加载所有视图或其他内容 非常感谢您的帮助。最后,我使

我正在为android开发一个应用程序,我有一个大的旧GridView,它在屏幕上垂直居中,所有单元格都可见

我想要的是一个函数,通过该函数,所有单元格都被放大3倍,让用户在gridview中滚动

如果你熟悉这个游戏,Wordfeud就是这么做的

我已经搜索了网络,但没有找到满意的解决方案,我设法找到了一种方法来改变我的网格瓷砖适配器中的布局参数,但它只是垂直拉伸,而不是水平拉伸,此外,整个应用程序会变得缓慢且无响应,直到您滚动列表并让网格重新加载所有视图或其他内容


非常感谢您的帮助。

最后,我使用了一个带有画布的自定义视图,这比尝试将GridView弯曲成它不应该是的东西要容易得多。

我知道您已经有一段时间没有问过我了,但我也遇到了一个类似的问题,我花了很长时间才解决,所以我希望其他人会发现这个问题。我最终扩展了GridLayout类并连接了

private class ScaleGestureListener
    extends ScaleGestureDetector.SimpleOnScaleGestureListener
在构造函数中:

        scaleDetector = new ScaleGestureDetector(context, new ScaleGestureListener());
由于它是一个视图组,请重写dispatch…而不是on…方法:

     @Override
     public boolean dispatchTouchEvent(MotionEvent ev){
         scaleDetector.onTouchEvent(ev); 
         super.dispatchTouchEvent(ev);
         return true;
     }

    @Override
    public void dispatchDraw(Canvas canvas) {
        String disp = String.valueOf(mScaleFactor);
        Log.v(TAG, "dispatch draw " + disp);

        canvas.save();
                 // i have some other stuff in here specific to my app 
        canvas.scale(mScaleFactor, mScaleFactor);
        super.dispatchDraw(canvas);
        canvas.restore();
    }

将您的gridview放置在HorizontalScrollview中实际上不建议这样做,但如果您想尝试。。。。。