我有应用程序显示书籍(一种图书馆书架)。 我的书显示为GridView。 现在我尝试设置背景图像(书架)。
当我设置GridView的android:background属性时,它显示背景图像,但是当用户滚动它们时,如果有很多书籍,则书籍的唯一图像是滚动,而不是书架。货架有固定的位置。
我该如何解决?我需要滚动GridView图像和背景,就像在网络浏览器中一样。
感谢。
答案 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);
}