Я использую muPDF для чтения PDF файлов в своем приложении. Мне не нравится его анимация по умолчанию (переключение по горизонтали). В другой стороне я нашел эту блестящую библиотеку для завивки изображения, а this для эффекта флип-лоскута на макетах.
В проекте с образцом curl, в CurlActivity
, все данные являются изображениями и установлены в PageProvider
следующим образом:
private class PageProvider implements CurlView.PageProvider {
// Bitmap resources.
private int[] mBitmapIds = { R.drawable.image1, R.drawable.image2,
R.drawable.image3, R.drawable.image4};
И используйте его следующим образом:
private CurlView mCurlView;
mCurlView = (CurlView) findViewById(R.id.curl);
mCurlView.setPageProvider(new PageProvider());
И CurlView
продолжается от GLSurfaceView
и реализует View.OnTouchListener, CurlRenderer.Observer
Но в muPDF, если я не ошибаюсь, данные находятся в объекте core
. core
является экземпляром MuPDFCore
. И используя его вот так:
MuPDFReaderView mDocView;
MuPDFView pageView = (MuPDFView) mDocView.getDisplayedView();
mDocView.setAdapter(new MuPDFPageAdapter(this, this, core));
MuPDFReaderView
extends ReaderView
и ReaderView
расширяет AdapterView<Adapter>
и реализует GestureDetector.OnGestureListener, ScaleGestureDetector.OnScaleGestureListener, Runnable
.
Мой вопрос в том, как я могу использовать эффект curl в muPDF? Где я должен получать страницы один за другим и преобразовывать их в растровые изображения? а затем изменения аспектов адаптера в muPDF для CurlView.
В проекте примера flip-flap в FlipHorizontalLayoutActivity
(мне тоже нравится этот эффект):
private FlipViewController flipView;
flipView = new FlipViewController(this, FlipViewController.HORIZONTAL);
flipView.setAdapter(new TravelAdapter(this));
setContentView(flipView);
И FlipViewController
extends AdapterView<Adapter>
, а набор данных в TravelAdapter
, который расширяет BaseAdapter
.
Никто этого не делал раньше? Или может помочь мне сделать это?!
EDIT:
Я нашел еще один хороший PDF-редактор с открытым исходным кодом с эффектом curl, называемый fbreaderJ. его разработчик говорит: "дополнительный модуль, который позволяет открывать PDF файлы в FBReader. Основываясь на библиотеке radaee pdf.
Я смутился! причина radaeepdf является закрытым исходным кодом и загружаемый проект - это просто для демонстрации и вставки имени пользователя и пароля для этого пакета. Люди хотят изменить весь проект fbreader, например, имя пакета.
Другая проблема, из-за которой я запутался, - это где этот дополнительный исходный код модуля?!
В любом случае, если кто-то хочет мне помочь, fbreader сделал это очень хорошо.
EDIT:
Я поговорил с Робин Уоттс, который разработал muPDF (или один из разработчиков), и он сказал:
Считаете ли вы платформу /android/ClassStructure.txt? MuPDF прежде всего библиотеки C. Таким образом, стандартный api является C. Скорее чем раскрытие api точно так же, как и Java (что было бы красивое решение и что-то, над чем я работал, но не завершено из-за нехватки времени), мы внедрили MuPDFCore в завершите только те бит, которые нам нужны. MuPDFCore обрабатывает открытие PDF файла, и получать растровые изображения из него, которые будут использоваться в представлениях. или, скорее, MuPDFCore возвращает "представления", а не "растровые изображения". Если вам нужны растровые изображения, то вы собираетесь необходимо внести изменения в MuPDFCore.
Слишком много ошибок при изменении небольшой части класса MuPDFReaderView. Я путаюсь! Они связаны друг с другом.
Пожалуйста, ответьте более точно.
EDIT:
Истек срок действия.