2012-04-02 17 views
2

私は書籍を表示するアプリケーション(ライブラリシェルフの一種)を持っています。 私の書籍は、GridViewとして表示されます。 今、私は背景画像(ブックシェルフ)を設定しようとしています。Androidでの背景スクロール

GridViewのandroid:backgroundプロパティを設定すると、背景イメージが表示されますが、ユーザーがスクロールしたときに多くの書籍が表示される場合は、棚ではなくスクロールして表示されます。棚は固定された位置にあります。

どうすれば解決できますか?私は、Webブラウザのように、GridViewイメージと背景のスクロールが必要です。

ありがとうございました。

+0

@Seigei Delphisは解決策を見つけました.. !!! –

答えて

0

私があなたの問題に近づくと思う最初の方法は、GridView内の個々のビューの背景をタイルに設定することです。タイルは他のタイルと組み合わせるとブックシェルフのような外観になります。

または、GridViewを水平方向にスクロールするように変更しても問題が解決する可能性があります。 :)

+0

あなたの返事をありがとう、ジョン。 2番目の解決策はかなりオリジナルです:)) –

0

サブクラスGridViewをサブクラス化し、dispatchDrawを上書きします。 これは、ShelvesViewからインスピレーションを受けています。

以下のコードはテストされています。することができます。 bgBitmapはタイリングビットマップです。

@Override protected void dispatchDraw(Canvas canvas) { 
    final int count = getChildCount(); 
    final int top = count > 0 ? getChildAt(0).getTop() : 0; 

    if (p == null) { 
     p = new Paint(); 
     p.setShader(new BitmapShader(bgBitmap, TileMode.REPEAT, TileMode.REPEAT)); 
    } 

    canvas.save(); 
    canvas.translate(0, top); 
    canvas.drawPaint(p); 
    canvas.restore(); 

    super.dispatchDraw(canvas); 
}