Android中的背景滚动

时间:2012-04-02 16:42:16

标签: android layout gridview background scroll

我有应用程序显示书籍(一种图书馆书架)。 我的书显示为GridView。 现在我尝试设置背景图像(书架)。

当我设置GridView的android:background属性时,它显示背景图像,但是当用户滚动它们时,如果有很多书籍,则书籍的唯一图像是滚动,而不是书架。货架有固定的位置。

我该如何解决?我需要滚动GridView图像和背景,就像在网络浏览器中一样。

感谢。

2 个答案:

答案 0 :(得分:0)

我能想到解决问题的第一种方法是将GridView中每个单独视图的背景设置为图块,当与其他图块组合时,会产生类似书架的外观。

或者您可以更改GridView以水平滚动,问题可能会得到解决。 :)

答案 1 :(得分: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);
}