Java android ImageView with zoom - java

I have been searching for a view that can handle this. What i want is to allow the users to zoom in/out of an image.
Right now i can not find any pre-built solutions for this except the WebView. One could argue that Google should actually offer this without having to resort to the WebView (That one limits the layout possibilities).
I would like to have the same built-in functionality like for iPhones/iPads.
So question is, what user-built views are there out that could handle pinch-zoom in/out of an image?
I have tested 2 different custom made solutions but neither worked as expected. One managed to re-size, but only in one direction at a time (either horizontally or vertically) and the other did not even work.
Update: It should be possible to use the solution with Android 2.3+. (Majority of the users are in that range)

I've found one very interesting few days ago. I think it's the best one I've seen. You can zoom with a double tap, pinch, has acceleration with movement, etc.
Take a look here.

There are several Android view libraries that can handle what you are looking for.
Check out these
https://github.com/chrisbanes/PhotoView
http://code.google.com/p/android-pinch/
https://github.com/jasonpolites/gesture-imageview

I achieved good results with this library: http://blog.sephiroth.it/2011/04/04/imageview-zoom-and-scroll/
It is not a total drop in replacement for imageview but it also works in a Viewpager where the Viewpager handles horizontal Swiping for page changes.

Starting with Android 3.0 (API Level 11) you can zoom every view using setScaleX(), setScaleY(), setPivotX(), setPivotY() etc., or just using setMatrix().

Related

Android: Yahoo Weather App Horizontal Scroll-view Effect?

I would like to know what the Android implementation is of this type of scrolling that you see in the Yahoo Weather App. Here is a video example:
http://www.youtube.com/watch?v=a-q_yetkpik
Any examples or ideas on how to implement this would sincerely help this poor lost soul!
Thank you
use that library https://github.com/xgc1986/ParallaxPagerLibrary, it's very easy to use, and it worked for me
demo
You should separate two different things here:
The horizontal scrolling
As you swipe your way through the viewpager, the background moves slower than the content does.
This effect can be achieved with the ParallaxPagerLibrary
The vertical scrolling
As you swipe up, the background image blurs away, making the "swiped up" content more visible to the user. This post explains it all and also provides a library.
But if you want it even better, someone wrote a simple "clone" of this weather app https://github.com/MoshDev/LikeYahooWeather
They customized ViewPager, the widget is called WeatherViewPager that it's unfortunately unavailable, looks like a ViewPager with a sort of parallax
You may take a look at https://play.google.com/store/apps/details?id=com.desarrollodroide.repos
it's a collection of usable opensource libraries
e.g. Utils->Paralloid or Utils->ParallaxScroll

LinearLayout to animate when shown

I have a vertical LinearLayout which has two another vertical layouts inside. The first one is always shown, and the second one depends on some event. I do want to animate that second layout when shown. How can I do it smoothly and nice? Thank you so much,
You should check out this library on Github. It may help. It is an animation library for listviews.
ListViewAnimations
A very simple, yet elegant way to get your layouts animated is by using the android:animateLayoutChanges="true" on its parent. This will likely take a lot of work in getting a nice animation out of your hands, unless you want to customize it.
With KitKat, Google introduced the android.transtion API, which may also be worth looking at.
You can create your own animation and you apply that animation to your layout when you need(In your case at the time of shown your layout)
yourLayout.startAnimation(yourAnimation);

Google Maps in a Webview for Android

I have a pair of questions about google maps for android. I decided to use a webview to display google maps due to the compatibility for the google maps api, so i'm having problems with really simple things (at least i think the are simple).
1) At the start of the application, my webview shows the map with a very low zoom. How can i set a higher zoom from the beginning? There are +/- buttons, but they are pretty uncomfortable.
2) How can i put a mark on the map? With the api, i have just to use the
google.maps.Marker
, but i don't know ho to use it with a webview.
I think that both the problems can be solved using javascript, but i'm new and i really don't know how to solve them. Thank you very much.
For the marker, you could create a javascript function to add a marker, and then on the WebView load a url like javascript:addAMarker("AddItHere");. I don't get what you mean the buttons are uncomfortable for the +/-.

Android - Image zoom library

I have this kind of use-case
User is looking at ImageView, this ImageView should implement two types of gestures:
Swipe left/right to move to previous/next image
Zoom image (two-fingers, double-tap)
For swipe I've used implementation from here https://stackoverflow.com/a/8806468/492624
You can see it here: https://github.com/smarek/Simple-Dilbert/blob/master/src/com/mareksebera/dilbert/ActivitySwipeDetector.java
For double-tap, two-fingers I've used library named PhotoView
You can see it here: https://github.com/smarek/Simple-Dilbert/blob/master/src/com/mareksebera/dilbert/ImageZoomActivity.java
The problem is, I'm not currently able to combine these two implementations.
I'd like user to have both options on one page, one idea is to rewrite it from "single ImageView" to "ViewPager", to implement paging on lower level (not as OnTouchListener) and use PhotoView as library to provide zoom function.
Possible user-scenario is for me:
If image is not zoomed, user can use swipe gestures to move through images
If image is zoomed, user can work with zoom and move in zoomed image, but left-right swipe will not work in this case, so user will be forced to un-zoom it to be able to display another
So two qeustions are on the table
Whether my user-scenario is right and understandable
If there is option to combine these or use another library without need to rewrite it to ViewPager
Can't you just use the code from sample of PhotoView?
This works well for me:
https://play.google.com/store/apps/details?id=uk.co.senab.photoview.sample

Possible implementation of game screen concept for an android game

I want to develop an android app, but I'm still not that great at using xml or the eclipse wysiwyg editor to make scalable and robust interfaces!
Below is a quick concept I drew up on word of what my main game screen will consist of:
I'm currently thinking a vertical linear frame first, with a frame that doesn't change for my important stats etc., then a frame in the middle which is switched by the buttons, but I'm stuck on how to implement this.
For the centre button screen, the map screen, I am hoping to add an image of a map which can be moved around, and somehow attach invisible button objects to points in this picture, maybe with an array of squares or something?
I understand this is a pretty open question and might be difficult to answer, but if you think you can help in anyway please do.
Thanks!
There is a log of possibilities, but you can use a LinearLayout with android:orientation="vertical" and include your stats in top. For the changing screens with buttons you can use a FragmentTabHost and create different Fragment for each of your views.
Check this example with a implementation.
Regarding the map, I think the easiest option is to use Google Maps Android API v2. Here is a example to use the maps v2 and a example of how to add markers to the map.

Categories