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