0

私はAndroid用のアプリケーションを開発していますが、画面の垂直方向の中央に配置され、すべてのセルが表示されている大きな古いGridViewがあります。

私が欲しいのは、すべてのセルを3倍に拡大して、代わりにグリッドビューでユーザーがスクロールできるようにする機能です。

あなたがゲームに精通しているなら、Wordfeudがそれをどのように行うかということです。

Webを検索しましたが、満足のいく解決策が見つかりませんでした。アダプターのグリッドタイルのレイアウトパラメーターを変更する方法を見つけることができましたが、水平方向ではなく垂直方向にのみストレッチされ、アプリ全体が遅くなります。リストをスクロールしてグリッドにすべてのビューなどをリロードさせるまで応答しません。

どんな助けでも大歓迎です。

4

2 に答える 2

0

結局、代わりにCanvasを使用したカスタムビューを使用しました。GridViewを本来あるべきではないものに曲げようとするよりもはるかに簡単です。

于 2011-11-17T07:35:11.337 に答える
0

お問い合わせから久しぶりですが、同様の問題で解決に時間がかかったので、他の人につまずいてもらいたいと思います。最終的にGridLayoutクラスを拡張し、

private class ScaleGestureListener
    extends ScaleGestureDetector.SimpleOnScaleGestureListener

コンストラクター内:

        scaleDetector = new ScaleGestureDetector(context, new ScaleGestureListener());

ビューグループなので、on…メソッドの代わりにdispatch…をオーバーライドします。

     @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();
    }
于 2014-03-07T15:34:58.450 に答える