Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6250589
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T13:27:13+00:00 2026-05-24T13:27:13+00:00

Is there a reason that they decided not to add the contains method (for

  • 0

Is there a reason that they decided not to add the contains method (for Path) in Android?

I’m wanting to know what points I have in a Path and hoped it was easier than seen here:

How can I tell if a closed path contains a given point?

Would it be better for me to create an ArrayList and add the integers into the array? (I only check the points once in a control statement) Ie. if(myPath.contains(x,y)

So far my options are:

  • Using a Region
  • Using an ArrayList
  • Extending the Class
  • Your suggestion

I’m just looking for the most efficient way I should go about this

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T13:27:14+00:00Added an answer on May 24, 2026 at 1:27 pm

    I came up against this same problem a little while ago, and after some searching, I found this to be the best solution.

    Java has a Polygon class with a contains() method that would make things really simple. Unfortunately, the java.awt.Polygonclass is not supported in Android. However, I was able to find someone who wrote an equivalent class.

    I don’t think you can get the individual points that make up the path from the Android Path class, so you will have to store the data in a different way.

    The class uses a Crossing Number algorithm to determine whether or not the point is inside of the given list of points.

    /**
     * Minimum Polygon class for Android.
     */
    public class Polygon
    {
        // Polygon coodinates.
        private int[] polyY, polyX;
    
        // Number of sides in the polygon.
        private int polySides;
    
        /**
         * Default constructor.
         * @param px Polygon y coods.
         * @param py Polygon x coods.
         * @param ps Polygon sides count.
         */
        public Polygon( int[] px, int[] py, int ps )
        {
            polyX = px;
            polyY = py;
            polySides = ps;
        }
    
        /**
         * Checks if the Polygon contains a point.
         * @see "http://alienryderflex.com/polygon/"
         * @param x Point horizontal pos.
         * @param y Point vertical pos.
         * @return Point is in Poly flag.
         */
        public boolean contains( int x, int y )
        {
            boolean oddTransitions = false;
            for( int i = 0, j = polySides -1; i < polySides; j = i++ )
            {
                if( ( polyY[ i ] < y && polyY[ j ] >= y ) || ( polyY[ j ] < y && polyY[ i ] >= y ) )
                {
                    if( polyX[ i ] + ( y - polyY[ i ] ) / ( polyY[ j ] - polyY[ i ] ) * ( polyX[ j ] - polyX[ i ] ) < x )
                    {
                        oddTransitions = !oddTransitions;          
                    }
                }
            }
            return oddTransitions;
        }  
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is there a reason that the object TreeSet.apply method returns SortedSet and not TreeSet
Is there any design reason for that (like the reason they gave up multi
I like to know is there any specific reason that there is no public
Is there any reason for automating tests that focus on GUI (and not to
Is there a specific reason that the EF requires new data providers and can't
Is there any (technical) reason that C# requires all generic type parameters to be
Is there a historic reason that periods are used instead of any other separator
Is there any particular reason that all data members in a class are private
I'm wondering if there's a reason that there's no first(iterable) in the Python built-in
Is there a reason I am missing that a block within a case statement

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.