Фоновая прокрутка в Android - PullRequest
2 голосов
/ 02 апреля 2012

У меня есть приложение, которое отображает книги (своего рода библиотечные полки). Мои книги отображаются как GridView. Сейчас я пытаюсь установить фоновое изображение (книжные полки).

Когда я устанавливаю свойство android: background в GridView, оно показывает фоновое изображение, но в случае многих книг, когда пользователь прокручивает их, единственными изображениями книг являются прокрутки, а не полки. Полки имеют фиксированное положение.

Как я могу решить это? Мне нужна прокрутка изображений GridView, а также фона, как в веб-браузерах.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Подкласс 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);
}
0 голосов
/ 02 апреля 2012

Первый способ, с помощью которого я могу подойти к вашей проблеме, - это установить фон для каждого отдельного представления в вашем GridView на плитку, которая в сочетании с другими плитками создает вид, похожий на книжную полку.

Или вы можете изменить GridView для горизонтальной прокрутки, и проблема может быть решена. :)

...