Is this a bug?
Android can't recognize the difference between
the motion of long touch action and the motion of move action.

It is different between the long touch action and the move action,
isn't it?

So, I modified my code without using onInterceptTouchEvent.

/*------ ZoomMapView.java -------*/
public class ZoomMapView extends MapView implements
OnLongClickListener {

        private static final int FILL = ViewGroup.LayoutParams.FILL_PARENT;
        private boolean moving;
        private ZoomControls zoomControls;

        public ZoomMapView(Context context, String apiKey) {
                super(context, apiKey);

                // long click settings.
                moving = false;
                setClickable(true);
                setLongClickable(true);
                setOnLongClickListener(this);

                // ZoomControls settings.
                zoomControls = (ZoomControls) getZoomControls();
                zoomControls.setLayoutParams(new ViewGroup.LayoutParams(FILL,
FILL));
                zoomControls.setGravity(Gravity.BOTTOM + 
Gravity.CENTER_HORIZONTAL);
                addView(zoomControls);
        }

        // OnLongClickListener interface method
        public boolean onLongClick(View arg0) {
                if (!moving) {
                        displayZoomControls(true);
                }
                return true;
        }

        @Override
        public boolean onTouchEvent(MotionEvent me) {
                switch (me.getAction()) {
                case MotionEvent.ACTION_MOVE:
                        moving = true;
                        break;
                case MotionEvent.ACTION_UP:
                        if (moving) {
                                zoomControls.hide();
                        }
                        moving = false;
                        break;
                }

                return super.onTouchEvent(me);
        }
}


This code doesn't trigger another behavior like onInterceptTouchEvent.
What do you think about my code?


On 8月26日, 午前2:32, 6real <[EMAIL PROTECTED]> wrote:
> Thanks for your code !
>
> I miss setClickable and I also found setEnabled.
> My code ran on the previous SDK ... I don't know if it is usefull to
> indicate this on the migration tips...
>
> On 25 août, 19:24, marcel-182 <[EMAIL PROTECTED]> wrote:
>
> > Thanks for the code. I have just one remark:
> > onInterceptTouchEvent(MotionEvent ev) has to return true in order to
> > be able to scroll while the ZoomControls are being displayed. But I'm
> > not sure if that triggers another bad behaviour :-).
>
> > On 25 Aug., 17:36, adamrocker <[EMAIL PROTECTED]> wrote:
>
> > > Hi.
>
> > > I'm so sorry for my code to confuse all of you.
> > > This is the shortest sample.
>
> > > /* BEGIN ------------------------------------------*/
>
> > > /*------ ZoomControlMapSample.java -------*/
> > > public class ZoomControlMapSample extends MapActivity {
> > >         private static final String API_KEY = "mapapikey";
>
> > >         @Override
> > >         public void onCreate(Bundle savedInstanceState) {
> > >                 super.onCreate(savedInstanceState);
> > >                 MapView zmv = new ZoomMapView(this, API_KEY);
> > >                 setContentView(zmv);
> > >         }
>
> > >         @Override
> > >         protected boolean isRouteDisplayed() { return false; }
>
> > > }
>
> > > /*------ ZoomMapView.java -------*/
> > > public class ZoomMapView extends MapView implements
> > > OnLongClickListener {
>
> > >         private static final int FILL = 
> > > ViewGroup.LayoutParams.FILL_PARENT;
>
> > >         public ZoomMapView(Context context, String apiKey) {
> > >                 super(context, apiKey);
>
> > >                 // long click settings.
> > >                 setClickable(true);
> > >                 setLongClickable(true);
> > >                 setOnLongClickListener(this);
>
> > >                 // ZoomControls settings.
> > >                 ZoomControls zoomControls = (ZoomControls) 
> > > getZoomControls();
> > >                 zoomControls.setLayoutParams(new 
> > > ViewGroup.LayoutParams(FILL,
> > > FILL));
> > >                 zoomControls.setGravity(Gravity.BOTTOM + 
> > > Gravity.CENTER_HORIZONTAL);
> > >                 addView(zoomControls);
> > >         }
>
> > >         // OnLongClickListener interface method
> > >         public boolean onLongClick(View arg0) {
> > >                 displayZoomControls(true);
> > >                 return false;
> > >         }
>
> > >         @Override
> > >         public boolean onInterceptTouchEvent(MotionEvent ev) {
> > >                 onTouchEvent(ev);
> > >                 return false;
> > >         }
>
> > > }
>
> > > /*------ AndroidManifest.java -------*/
> > > <?xml version="1.0" encoding="utf-8"?>
> > > <manifest xmlns:android="http://schemas.android.com/apk/res/android";
> > >     package="com.adamrocker.android.sample.map.zoom">
> > >     <application android:icon="@drawable/icon" android:label="@string/
> > > app_name">
> > >         <activity android:name=".ZoomControlMapSample"
> > > android:label="@string/app_name">
> > >             <intent-filter>
> > >                 <action android:name="android.intent.action.MAIN" />
> > >                 <category
> > > android:name="android.intent.category.LAUNCHER" />
> > >             </intent-filter>
> > >         </activity>
> > >                 <uses-library android:name="com.google.android.maps" />
> > >         </application>
> > >         <uses-permission android:name="android.permission.INTERNET" />
> > > </manifest>
>
> > > /*------------------------------------------ END */
>
> > > These are the all files except the R.java.
> > > Thank you, jokochi. Your advice is useful.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new Android 0.9 SDK beta!
http://android-developers.blogspot.com/2008/08/announcing-beta-release-of-android-sdk.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to