Following features would be nice in the high level classes:
1. Annotation Animations
If I view a PDF with for example an image with a URL, there is a transparant blue color over that rectangle. It would be nice if we could "set" the color of these Annotations (instead of the deault transparant blue). So basically creating a setter to get access to the Color value for this transparant Annotation layer.
What I actually want to achieve is to only show this semi transparant layer for a few seconds. Because the semi transparant layer is "messing up" the nice pictures, but by showing them for a few seconds the user knows where he can click. If there is a setter for this Color value, I can easily create a asynctask which puts that value on full transparant after a few seconds.
2. Landscape Mode
I know it's already requested by different persons here, but a 2 page landscape mode would be very nice.
You have more and more tablets with enough memory. t would be nice to already render some PDF pages in memory to speed up the scrolling between the previous or next pages. It would be much quicker.
I noticed that the Adobe PDF viewer is faster in viewing the next pages, however, when I go to a page much further, they don't show up immediately, which makes me believe that Adobe is caching the next pages, which is very nice.
you can have for example 4 pages in memory:
If you go to the next page, you put the current page in "current-1", you show the "current+1" (= next page) immediately, you put the "current+2" object in "current+1" and you render the new "current+2" while the user is reading his PDF page.
I know that all of these functionalities can be implemented by ourselves using the low level classes.
The problem is that a lot of the added value of this SDK is in the high level (closed) classes, which implement already a lot of functionality for us. (using the low lvl classes makes this much complexer for a lot of people)
It would be great to have such interface for the transparent color.
I just tested the latest library with the PDFViewSingleEx view and it's a big improvement over the single page in landscape mode.
Some less important ideas maybe for the long term:
-) option to 'fit' the two pages. Could be nice for magazine PDFs where the left page is fitting the right page for 'one big page'. (now there is always a gap between the two pages)
-) option to scroll with two pages in landscape mode instead of one page. I implemented something quick by listening to 'onPageChanged' to automatically scroll two pages instead of one, but it's not so nice because of the animations.
About the caching:
I don't know the low level details like you do, so I'm not aware how easy/hard it is to render a page with the necessary quality for viewing it on a tablet (because you don't need the print quality for viewing it).
If you take a look at the Adobe application on Android, you can see that they are caching more then one page. If you jump to a further page which is not cached yet, the rendering is certainly not faster then your SDK. But if you scroll the the next page(s) or previous page(s), it's faster because of this caching (you don't see any rendering unless you really scroll fast between pages).
I don't know if Adobe is checking the remaining memory and if it will crash if you load a very heavy PDF. In your demo project, you're printing the remaining memory on a label, so maybe caching could be done only if there is enough memory.
When switching from landscape to portrait or vice versa, it's also re-rendering the page (but that might be harder to avoid, because the activity and all the objects are destroyed when changing the mode).
But I'm already very happy with this PDFViewSingleEx class and the interface for the transparent color.
The other ideas are less important and maybe interesting for the long term roadmap.
Your SDK is easy and fast to integrate with the high level classes in the jar file, so I'm very happy with it.
I agree with Matthias, especially with second point about 2 pages in landscape mode. That would be very usefull feature and will look very nice for user. It would be great have that feature in next version. What do you think about this idea and if you accept this idea when we could except this feature?