0

有没有办法将网格视图平移到水平方向。我正在图像上实现网格视图。因此,每当我缩放图像网格时,也应该在所有方向上进行缩放和平移,这样我就可以选择图像的特定区域。

我用谷歌搜索了网格的平移,但没有得到满意的答案。请帮我一些示例代码。

4

1 回答 1

0

我也搜索了一些标准方法来缩放图像视图以外的视图,但没有找到任何东西。所以,我为此做了一个解决方法,它有效。
要缩放视图,您可以在启用了 fillAfter 属性的视图上应用缩放动画。

您可以这样做:

    ScaleAnimation scale;
    final float MAX_SCALE_FACTOR = 5f;
    float currentScaleFactor = 1;
    public static final long DURATION = 500;

    GridView grid = (GridView)findViewById(R.id.grid);


    public void scaleMyView()
    {
        if(currentScaleFactor <= MAX_SCALE_FACTOR)
        {
             DecelerateInterpolator interpolator = new  DecelerateInterpolator();
             scale = new ScaleAnimation(currentScaleFactor, currentScaleFactor*1.2f, 
                            currentScaleFactor, currentScaleFactor*1.2f);
             currentScaleFactor *= 1.2;
             scale.setDuration(DURATION);
             scale.setInterpolator(interpolator);
             scale.setFillEnabled(true);
             scale.setFillAfter(true);

             grid.startAnimation(scale);
       }
  }

每次调用此方法时,都会缩放视图并保存尺寸。您可以减少动画持续时间以提供即时缩放的效果。现在您可以调用此方法 onPan 或 onTouch 来应用缩放。

我希望这将有所帮助。

于 2012-09-03T07:14:59.260 回答