Re: [android-beginners] Finger swipe in Android API level 3 (OS 1.5) ?

2010-05-25 Thread Justin Anderson
I did a little playing around with the new gestures support and I was a
little disappointed... It didn't seem to have any notion of a starting or
ending point (which was critical for my application).

Also, the methods returned void instead of a boolean indicating whether the
event should be propagated on or not... which also caused me grief.  Why
they did it that way I have no clue, but it certainly didn't work for my
situation.

As a result I am still using the method I posted earlier.

Thanks,
Justin


--
There are only 10 types of people in the world...
Those who know binary and those who don't.
--


On Tue, May 25, 2010 at 8:27 AM, Chris Ross

> wrote:

>
>  Thanks much.  I had found something similar elsewhere in my searching, and
> as you ended up making a subclass of SimpleOnGestureListener.  As it
> happens, I made that class inside of my primary Activity class, so I didn't
> have to pass the object into the instantiator like you did, but the same
> "have to work back into the main object" effectively applies, and I see your
> point.
>
>  If I get to a point where I'm willing to ignore the 1.5 OS revision, I'll
> see what else can be done with the new gestures support added in API level
> 4...
>
>  - Chris
>
> On May 25, 2010, at 3:50 AM, Justin Anderson wrote:
>
> > I know this is late, but hopefully it will help you and others out there
> still programming stuff to be compatible with 1.5...  This is a simplified
> version of a class that I use to detect a vertical swipe on a Gallery
> object.  To see it in action and test it out you can take a look at
> "AppSwipe!" on the market (It's free...)
> >
> > In order to get the swipe working exactly the way you want it to you may
> have to fiddle around with the three integers used for detecting a swipe.
> >
> > public class GallerySwipeUpDetector extends SimpleOnGestureListener
> implements OnTouchListener
> > {
> > private Gallery m_gallery;
> > GestureDetector m_detector;
> > int m_swipeMaxOffPath; //Maximum horizontal tolerance for detecting a
> vertical swipe
> > int m_swipeMinDistance; //Minimum distance in order to detect a
> vertical swipe
> > int m_swipeMinVelocity; //Minimum velocity (pixels/second) in order
> to detect a vertical swipe
> >
> > public GallerySwipeUpDetector(Gallery gallery)
> > {
> > m_gallery = gallery;
> > m_detector = new GestureDetector(this);
> > m_swipeMaxOffPath = 25;
> > m_swipeMinDistance = 10;
> > m_swipeMinVelocity = 10;
> > }
> >
> > @Override
> > public boolean onFling(MotionEvent e1, MotionEvent e2, float
> velocityX, float velocityY)
> > {
> > if (Math.abs(e1.getX() - e2.getX()) < m_swipeMaxOffPath &&
> > e1.getY() - e2.getY() >= m_swipeMinDistance &&
> > Math.abs(velocityY) >= m_swipeMinVelocity)
> > {
> > int pos = m_gallery.pointToPosition((int)e1.getX(),
> (int)e1.getY());
> > int firstPos = m_gallery.getFirstVisiblePosition();
> > int viewablePos = pos - firstPos;
> > View swipedView = m_gallery.getChildAt(viewablePos);
> >
> > if (swipedView != null)
> > executeSwipeUpAction(pos);
> >
> > return true;
> > }
> >
> > return false;
> > }
> >
> > protected void executeSwipeUpAction(int pos)
> > {
> > //Do stuff
> > }
> >
> > @Override
> > public boolean onTouch(View v, MotionEvent event)
> > {
> > return m_detector == null ? false :
> m_detector.onTouchEvent(event);
> > }
> > }
> >
> > I would then use this class as follows:
> >
> > Gallery myGallery = (Gallery) findViewById(R.id.myGalleryID);
> > myGallery.setOnTouchListener(new GallerySwipeUpDetector(myGallery));
> >
> > There may be a better way to do this, but this worked for me.  If someone
> else has another solution that works better then I would be interested as
> well.  I really don't like having to call a method on my gallery and pass it
> in as an argument to my listener (I think it's ugly and probably a poor
> design), but that was the only thing I could think of to do and it works.
> >
> > Hope this helps,
> > Justin
> >
> > --
> > There are only 10 types of people in the world...
> > Those who know binary and those who don't.
> > --
> >
> >
> > On Fri, May 21, 2010 at 3:31 PM, Justin Anderson 
> wrote:
> > It is admittedly difficult to get it to work in 1.5...
> >
> > I have implemented it for my app on the market (AppSwipe!) but it was not
> easy.  It might be a day or two before I have a chance to sit down and look
> at my code but as soon as I can, I will post something her

Re: [android-beginners] Finger swipe in Android API level 3 (OS 1.5) ?

2010-05-25 Thread Chris Ross

  Thanks much.  I had found something similar elsewhere in my searching, and as 
you ended up making a subclass of SimpleOnGestureListener.  As it happens, I 
made that class inside of my primary Activity class, so I didn't have to pass 
the object into the instantiator like you did, but the same "have to work back 
into the main object" effectively applies, and I see your point.

  If I get to a point where I'm willing to ignore the 1.5 OS revision, I'll see 
what else can be done with the new gestures support added in API level 4...

  - Chris

On May 25, 2010, at 3:50 AM, Justin Anderson wrote:

> I know this is late, but hopefully it will help you and others out there 
> still programming stuff to be compatible with 1.5...  This is a simplified 
> version of a class that I use to detect a vertical swipe on a Gallery object. 
>  To see it in action and test it out you can take a look at "AppSwipe!" on 
> the market (It's free...)
> 
> In order to get the swipe working exactly the way you want it to you may have 
> to fiddle around with the three integers used for detecting a swipe.
> 
> public class GallerySwipeUpDetector extends SimpleOnGestureListener 
> implements OnTouchListener
> {
> private Gallery m_gallery;
> GestureDetector m_detector;
> int m_swipeMaxOffPath; //Maximum horizontal tolerance for detecting a 
> vertical swipe
> int m_swipeMinDistance; //Minimum distance in order to detect a vertical 
> swipe
> int m_swipeMinVelocity; //Minimum velocity (pixels/second) in order to 
> detect a vertical swipe
> 
> public GallerySwipeUpDetector(Gallery gallery)
> {
> m_gallery = gallery;
> m_detector = new GestureDetector(this);
> m_swipeMaxOffPath = 25;
> m_swipeMinDistance = 10;
> m_swipeMinVelocity = 10;
> }
> 
> @Override
> public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
> float velocityY)
> {
> if (Math.abs(e1.getX() - e2.getX()) < m_swipeMaxOffPath && 
> e1.getY() - e2.getY() >= m_swipeMinDistance && 
> Math.abs(velocityY) >= m_swipeMinVelocity)
> {
> int pos = m_gallery.pointToPosition((int)e1.getX(), 
> (int)e1.getY());
> int firstPos = m_gallery.getFirstVisiblePosition();
> int viewablePos = pos - firstPos;
> View swipedView = m_gallery.getChildAt(viewablePos);
> 
> if (swipedView != null)
> executeSwipeUpAction(pos);
> 
> return true;
> }
> 
> return false;
> }
> 
> protected void executeSwipeUpAction(int pos)
> {
> //Do stuff
> }
> 
> @Override
> public boolean onTouch(View v, MotionEvent event) 
> {
> return m_detector == null ? false : m_detector.onTouchEvent(event);
> }
> }
> 
> I would then use this class as follows:
> 
> Gallery myGallery = (Gallery) findViewById(R.id.myGalleryID);
> myGallery.setOnTouchListener(new GallerySwipeUpDetector(myGallery));
> 
> There may be a better way to do this, but this worked for me.  If someone 
> else has another solution that works better then I would be interested as 
> well.  I really don't like having to call a method on my gallery and pass it 
> in as an argument to my listener (I think it's ugly and probably a poor 
> design), but that was the only thing I could think of to do and it works.
> 
> Hope this helps,
> Justin
> 
> --
> There are only 10 types of people in the world...
> Those who know binary and those who don't.
> --
> 
> 
> On Fri, May 21, 2010 at 3:31 PM, Justin Anderson  
> wrote:
> It is admittedly difficult to get it to work in 1.5...
> 
> I have implemented it for my app on the market (AppSwipe!) but it was not 
> easy.  It might be a day or two before I have a chance to sit down and look 
> at my code but as soon as I can, I will post something here to at least point 
> you in the right direction.
> 
> Thanks,
> 
> Justin
> 
> --
> There are only 10 types of people in the world...
> Those who know binary and those who don't.
> --
> 
> 
> On Tue, May 18, 2010 at 11:58 AM, Chris Ross  wrote:
> 
>  Hi there.  When searching for information about how to code up recognition 
> of a finger swipe across the screen, I find most references to the Gesture 
> API added in API level 4 (OS 1.6).  However, there are still quite a few 
> devices (The HTC Droid Eris, for example.  And the ole G1.) that are running 
> 1.5.
> 
>  The rest of my app is working just fine requiring only API level 3, but I 
> would like to add swipe recognition.  The home screens on the afore-mentioned 
> OS 1.5 devices detect sw

Re: [android-beginners] Finger swipe in Android API level 3 (OS 1.5) ?

2010-05-25 Thread Justin Anderson
I know this is late, but hopefully it will help you and others out there
still programming stuff to be compatible with 1.5...  This is a simplified
version of a class that I use to detect a vertical swipe on a Gallery
object.  To see it in action and test it out you can take a look at
"AppSwipe!" on the market (It's free...)

In order to get the swipe working exactly the way you want it to you may
have to fiddle around with the three integers used for detecting a swipe.

public class GallerySwipeUpDetector extends SimpleOnGestureListener
implements OnTouchListener
{
private Gallery m_gallery;
GestureDetector m_detector;
int m_swipeMaxOffPath; //Maximum horizontal tolerance for detecting a
vertical swipe
int m_swipeMinDistance; //Minimum distance in order to detect a vertical
swipe
int m_swipeMinVelocity; //Minimum velocity (pixels/second) in order to
detect a vertical swipe

public GallerySwipeUpDetector(Gallery gallery)
{
m_gallery = gallery;
m_detector = new GestureDetector(this);
m_swipeMaxOffPath = 25;
m_swipeMinDistance = 10;
m_swipeMinVelocity = 10;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY)
{
if (Math.abs(e1.getX() - e2.getX()) < m_swipeMaxOffPath &&
e1.getY() - e2.getY() >= m_swipeMinDistance &&
Math.abs(velocityY) >= m_swipeMinVelocity)
{
int pos = m_gallery.pointToPosition((int)e1.getX(),
(int)e1.getY());
int firstPos = m_gallery.getFirstVisiblePosition();
int viewablePos = pos - firstPos;
View swipedView = m_gallery.getChildAt(viewablePos);

if (swipedView != null)
executeSwipeUpAction(pos);

return true;
}

return false;
}

protected void executeSwipeUpAction(int pos)
{
//Do stuff
}

@Override
public boolean onTouch(View v, MotionEvent event)
{
return m_detector == null ? false : m_detector.onTouchEvent(event);
}
}

I would then use this class as follows:

Gallery myGallery = (Gallery) findViewById(R.id.myGalleryID);
myGallery.setOnTouchListener(new GallerySwipeUpDetector(myGallery));

There may be a better way to do this, but this worked for me.  If someone
else has another solution that works better then I would be interested as
well.  I really don't like having to call a method on my gallery and pass it
in as an argument to my listener (I think it's ugly and probably a poor
design), but that was the only thing I could think of to do and it works.

Hope this helps,
Justin

--
There are only 10 types of people in the world...
Those who know binary and those who don't.
--


On Fri, May 21, 2010 at 3:31 PM, Justin Anderson wrote:

> It is admittedly difficult to get it to work in 1.5...
>
> I have implemented it for my app on the market (AppSwipe!) but it was not
> easy.  It might be a day or two before I have a chance to sit down and look
> at my code but as soon as I can, I will post something here to at least
> point you in the right direction.
>
> Thanks,
>
> Justin
>
> --
> There are only 10 types of people in the world...
> Those who know binary and those who don't.
> --
>
>
> On Tue, May 18, 2010 at 11:58 AM, Chris Ross 
> 
> > wrote:
>
>>
>>  Hi there.  When searching for information about how to code up
>> recognition of a finger swipe across the screen, I find most references to
>> the Gesture API added in API level 4 (OS 1.6).  However, there are still
>> quite a few devices (The HTC Droid Eris, for example.  And the ole G1.) that
>> are running 1.5.
>>
>>  The rest of my app is working just fine requiring only API level 3, but I
>> would like to add swipe recognition.  The home screens on the
>> afore-mentioned OS 1.5 devices detect swipes to go across pages, so it must
>> be possible in there somewhere.  It is just that it's really hard before the
>> API level 4 Gesture code came in, or is it really effectively not possible?
>>
>>  Can anyone tell me how to detect swipes (just a directional swipe left or
>> right across the screen) in OS 1.5 (API  level 3, or below) ?
>>
>>  Thanks...
>>
>>  - Chris
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Android Beginners" group.
>>
>> NEW! Try asking and tagging your question on Stack Overflow at
>> http://stackoverflow.com/questions/tagged/android
>>
>> To unsubscribe from this group, send email to
>> android-beginners+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/android-beginners?hl=en
>>
>
>

-- 
You receive

Re: [android-beginners] Finger swipe in Android API level 3 (OS 1.5) ?

2010-05-21 Thread Justin Anderson
It is admittedly difficult to get it to work in 1.5...

I have implemented it for my app on the market (AppSwipe!) but it was not
easy.  It might be a day or two before I have a chance to sit down and look
at my code but as soon as I can, I will post something here to at least
point you in the right direction.

Thanks,
Justin

--
There are only 10 types of people in the world...
Those who know binary and those who don't.
--


On Tue, May 18, 2010 at 11:58 AM, Chris Ross

> wrote:

>
>  Hi there.  When searching for information about how to code up recognition
> of a finger swipe across the screen, I find most references to the Gesture
> API added in API level 4 (OS 1.6).  However, there are still quite a few
> devices (The HTC Droid Eris, for example.  And the ole G1.) that are running
> 1.5.
>
>  The rest of my app is working just fine requiring only API level 3, but I
> would like to add swipe recognition.  The home screens on the
> afore-mentioned OS 1.5 devices detect swipes to go across pages, so it must
> be possible in there somewhere.  It is just that it's really hard before the
> API level 4 Gesture code came in, or is it really effectively not possible?
>
>  Can anyone tell me how to detect swipes (just a directional swipe left or
> right across the screen) in OS 1.5 (API  level 3, or below) ?
>
>  Thanks...
>
>  - Chris
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Beginners" group.
>
> NEW! Try asking and tagging your question on Stack Overflow at
> http://stackoverflow.com/questions/tagged/android
>
> To unsubscribe from this group, send email to
> android-beginners+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-beginners?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.

NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android

To unsubscribe from this group, send email to
android-beginners+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en


[android-beginners] Finger swipe in Android API level 3 (OS 1.5) ?

2010-05-18 Thread Chris Ross

  Hi there.  When searching for information about how to code up recognition of 
a finger swipe across the screen, I find most references to the Gesture API 
added in API level 4 (OS 1.6).  However, there are still quite a few devices 
(The HTC Droid Eris, for example.  And the ole G1.) that are running 1.5.

  The rest of my app is working just fine requiring only API level 3, but I 
would like to add swipe recognition.  The home screens on the afore-mentioned 
OS 1.5 devices detect swipes to go across pages, so it must be possible in 
there somewhere.  It is just that it's really hard before the API level 4 
Gesture code came in, or is it really effectively not possible?

  Can anyone tell me how to detect swipes (just a directional swipe left or 
right across the screen) in OS 1.5 (API  level 3, or below) ?

  Thanks...

  - Chris


-- 
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.

NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android

To unsubscribe from this group, send email to
android-beginners+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en