{"id":18270329,"url":"https://github.com/jasonpolites/gesture-imageview","last_synced_at":"2026-03-12T18:49:55.043Z","repository":{"id":2506756,"uuid":"3481898","full_name":"jasonpolites/gesture-imageview","owner":"jasonpolites","description":"Implements pinch-zoom, rotate, pan as an ImageView for Android 2.1+","archived":false,"fork":false,"pushed_at":"2017-02-23T08:01:06.000Z","size":1377,"stargazers_count":1150,"open_issues_count":46,"forks_count":496,"subscribers_count":112,"default_branch":"master","last_synced_at":"2025-12-21T02:43:13.434Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jasonpolites.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-02-18T23:10:44.000Z","updated_at":"2025-12-05T07:59:47.000Z","dependencies_parsed_at":"2022-08-02T20:31:11.641Z","dependency_job_id":null,"html_url":"https://github.com/jasonpolites/gesture-imageview","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jasonpolites/gesture-imageview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonpolites%2Fgesture-imageview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonpolites%2Fgesture-imageview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonpolites%2Fgesture-imageview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonpolites%2Fgesture-imageview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasonpolites","download_url":"https://codeload.github.com/jasonpolites/gesture-imageview/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonpolites%2Fgesture-imageview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30438564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T14:34:45.044Z","status":"ssl_error","status_checked_at":"2026-03-12T14:09:33.793Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T11:38:30.853Z","updated_at":"2026-03-12T18:49:55.019Z","avatar_url":"https://github.com/jasonpolites.png","language":"Java","funding_links":[],"categories":["Libs","etc"],"sub_categories":["\u003cA NAME=\"Widget\"\u003e\u003c/A\u003eWidget"],"readme":"GestureImageView\n================\n\nThis is a simple Android View class which provides basic pinch and zoom capability for images.\n\nCan be used as a replacement for a standard ImageView when you want to include pinch and zoom.\n\n\nUPDATE (Aug 2012)\n~~~~~~~~~~~~~~~~~\nJust a quick note to all those who have posted issues recently, I HAVE seen them but just haven't had a chance\nto fix them.  I'll do my best to get to them ASAP.  Thanks for being patient\n\nFeatures:\n~~~~~~~~~\n1. Pinch zoom in place (i.e. zoom occurs from point of touch)\n2. Panning with fling gesture\n3. Double tap zoom\n4. Configurable zoom boundaries (min/max)\n\nLimitations:\n~~~~~~~~~~~~\n1. Does not support Rotation\n2. Does not support Pan and Zoom together\n3. Not all methods of ImageView class are supported (will throw UnsupportedOperationException if strict is true)\n\nWhat's New in the Latest Release!\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Added double-tap zoom support\n- Added support for onClickListener\n- Added support for non-image drawables\n\nNew in previous releases\n~~~~~~~~~~~~~~~~~~~~~~~~\n- Added support for CENTER, CENTER_INSIDE and CENTER_CROP scale types\n- Added support for custom OnTouchListener on GestureImageView\n- Fixed NPE when no drawable set on view\n- Fixed/improved calculation of scale limits\n\nUsage\n~~~~~\n\nNotes:\n------\n1. Setting gesture-image:strict to true will result in UnsupportedOperationException if an unsupported method is called.\n2. Setting gesture-image:recycle to true will automatically reycle bitmap images when the view is destroyed.\n\nConfigured as View in layout.xml\n--------------------------------\ncode::\n\n\t\u003cLinearLayout \n\t    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n\t    xmlns:gesture-image=\"http://schemas.polites.com/android\"\n\t    android:layout_width=\"fill_parent\"\n\t    android:layout_height=\"fill_parent\"\u003e\n\n\t    \u003ccom.polites.android.GestureImageView\n\t        android:id=\"@+id/image\"\n\t        android:layout_width=\"fill_parent\"\n\t    \tandroid:layout_height=\"wrap_content\" \n\t    \tandroid:src=\"@drawable/image\"\n\t    \tgesture-image:min-scale=\"0.1\"\n\t    \tgesture-image:max-scale=\"10.0\"\n\t    \tgesture-image:strict=\"false\"/\u003e\n\t    \t\n\t\u003c/LinearLayout\u003e\n    \t\nConfigured Programmatically\n---------------------------\ncode::    \t\n\n\timport com.polites.android.GestureImageView;\n\t\n\timport android.app.Activity;\n\timport android.os.Bundle;\n\timport android.view.ViewGroup;\n\timport android.widget.LinearLayout.LayoutParams;\n\t\n\tpublic class SampleActivity extends Activity {\n\t    @Override\n\t    public void onCreate(Bundle savedInstanceState) {\n\t        super.onCreate(savedInstanceState);\n\t        setContentView(R.layout.main);\n\t        \n\t        LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);\n\t        \n\t        GestureImageView view = new GestureImageView(this);\n\t        view.setImageResource(R.drawable.image);\n\t        view.setLayoutParams(params);\n\t        \n\t        ViewGroup layout = (ViewGroup) findViewById(R.id.layout);\n\t\n\t        layout.addView(view);\n\t    }\n\t}\n\t\nLicense\n~~~~~~~\n`Apache License 2.0 \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e`_","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonpolites%2Fgesture-imageview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasonpolites%2Fgesture-imageview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonpolites%2Fgesture-imageview/lists"}