我正在为android开发一个应用程序,我有一个很大的旧GridView,它在屏幕上垂直居中,所有单元格都可见。
我想要的是一个函数,通过该函数将所有单元格放大3倍,让用户在gridview中滚动。
如果你熟悉游戏,Wordfeud会如何做。
我搜索过这些网并没有找到一个令人满意的解决方案,我设法找到一种方法来改变我的适配器中的网格贴片的布局参数,但它只是垂直拉伸而不是水平,也是整个应用程序变得缓慢且无响应,直到您滚动列表并让网格重新加载所有视图或其他任何内容。
任何帮助都表示赞赏。
答案 0 :(得分:0)
最后,我使用了一个带有Canvas的自定义视图 - 比尝试将GridView弯曲成它本不应该的东西容易得多。
答案 1 :(得分:0)
我知道你问过这已经有一段时间了,但是我遇到了类似的问题,我花了很长时间才解决这个问题,所以我希望其他人可能偶然发现这个问题。我最终扩展了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();
}