Рисование элементов галереи Android справа налево - PullRequest
0 голосов
/ 03 июня 2011

Я хочу использовать галерею Android, но рисовать элементы справа налево (направление письма на иврите) Предметы Галереи представляют главы в книге, написанной на иврите, поэтому важен порядок предметов

Android рисует их в противоположном направлении, как это (первый элемент выбран) 1 2 3 4 5

вместо этого 5 4 3 2 1

Я уже пытался переопределить эти методы в своем классе Галереи (никто из них не изменил порядок рисования):

@Override
public int getChildDrawingOrder(int childCount, int i) {
    return getChildDrawingOrder(childCount, childCount - i+1)
}

Я знаю по отладке, что был посещен getChildDrawingOrder Я попробовал несколько вариантов этого, но ни один из них не работал

Я тоже пытался

@Override
public void onDraw(Canvas canvas) {
    canvas.save();
    canvas.rotate(180, getWidth()/2, getHeight()/2);
    super.onDraw(canvas);
    canvas.restore();
}

Я буду счастлив, если кто-нибудь сможет мне помочь с этим Я не могу понять это правильно

Большое спасибо Орон

1 Ответ

3 голосов
/ 03 июня 2011

Наполните Галерею изображениями с помощью класса ImageAdapter и загрузите изображения в обратном порядке, например:

gallery = (Gallery) findViewById(R.id.gallery);
Integer[] mImageIds = new Integer[] {                   
    R.drawable.chapter_5_image,
    R.drawable.chapter_4_image,
    R.drawable.chapter_3_image,             
    R.drawable.chapter_2_image,
    R.drawable.chapter_1_image};
    imageAdapter = new ImageAdapter(this, mImageIds);
    gallery.setAdapter(imageAdapter);

Класс ImageAdapter должен расширять android.widget.BaseAdapter - есть множество примеров, показывающих, как реализоватьадаптер этого типа.

Кроме того, установите начальный выбор в галерее следующим образом:

gallery.setSelection(4, true);

Это должно расположить галерею так, чтобы отображалось изображение главы 1.

...