Android 2.1:如何在GridView上放大/缩小和滚动

Android 2.1:如何在GridView上放大/缩小和滚动,android,gridview,zooming,Android,Gridview,Zooming,背景: 我的工作应用程序包含一个GridView,它有5行11列,带有一个用于显示的覆盖适配器。它非常适合我使用大型平板电脑的需要 在移植到小型智能手机后,我意识到网格由于其小尺寸而无法使用。我决定使用缩放功能,而不是实现横向定位 问题: 实现以下两个基本功能的最佳方法是什么:缩放(允许在100和400%之间缩放)和滚动(上/下/右/左)我的解决方案是创建一个布局重新计算例程,更改列的大小 也许有更好的方法,但没有回复,这是一个快速而肮脏的黑客程序 public void gvlpRecalc(

背景: 我的工作应用程序包含一个GridView,它有5行11列,带有一个用于显示的覆盖适配器。它非常适合我使用大型平板电脑的需要

在移植到小型智能手机后,我意识到网格由于其小尺寸而无法使用。我决定使用缩放功能,而不是实现横向定位

问题:
实现以下两个基本功能的最佳方法是什么:缩放(允许在100和400%之间缩放)和滚动(上/下/右/左)

我的解决方案是创建一个布局重新计算例程,更改列的大小

也许有更好的方法,但没有回复,这是一个快速而肮脏的黑客程序

public void gvlpRecalc() {
    m_gv.setNumColumns(m_Columns);
    if ((btnWidth = (int) (m_gv.getWidth() / m_Columns + .5)) == 0) {
      Display display = ((Activity) m_Context).getWindowManager().getDefaultDisplay();
      btnWidth = (int) (display.getWidth() / m_Columns + .5);
      switch (m_Columns) {
        case 8:
          btnHeight = (int) (btnWidth * .9);
          break;
        case 10:
          btnHeight = (int) (btnWidth * 1.2);
          break;
        default:
          btnHeight = btnWidth;
      }
    } else
      switch (m_Columns) {
        case 8:
          btnHeight = (int) (btnWidth * .9);
          break;
        case 10:
          btnHeight = (int) (btnWidth * 1.2);
          break;
        case 11:
          btnHeight = btnWidth;
          break;
        default:
          btnHeight = (int) (m_gv.getHeight() / 2.2);
      }
    gvlp = new GridView.LayoutParams(btnWidth, btnHeight);
  }