Android Example: Scalegesturedetector

Posted on

android.view.ScaleGestureDetector detects scaling transformation gestures using the supplied MotionEvents. The ScaleGestureDetector.OnScaleGestureListener callback volition notify users when a detail gesture resultant has occurred.


MainActivity.java

package com.blogspot.android_er.androidscalegesturedetector;  import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.MotionEvent; import android.view.ScaleGestureDetector; import android.widget.TextView;  world class MainActivity extends AppCompatActivity {      TextView textMsg;      mortal ScaleGestureDetector scaleGestureDetector;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         textMsg = (TextView)findViewById(R.id.msg);          scaleGestureDetector = novel ScaleGestureDetector(                 this, novel MySimpleOnScaleGestureListener(textMsg));     }      @Override     world boolean onTouchEvent(MotionEvent event) {         scaleGestureDetector.onTouchEvent(event);         provide true;         //return super.onTouchEvent(event);     }      mortal class MySimpleOnScaleGestureListener             extends ScaleGestureDetector.SimpleOnScaleGestureListener{          TextView viewMessage;          world MySimpleOnScaleGestureListener(TextView v) {             super();             viewMessage = v;         }          @Override         world boolean onScale(ScaleGestureDetector detector) {             float scaleFactor = detector.getScaleFactor();             viewMessage.setText(String.valueOf(scaleFactor));             provide true;             //return super.onScale(detector);         }     } }  

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:padding="16dp"     android:orientation="vertical"     tools:context="com.blogspot.android_er.androidscalegesturedetector.MainActivity">      <TextView         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_gravity="center_horizontal"         android:autoLink="web"         android:text="https://rootandroid.org//"         android:textStyle="bold" />     <TextView         android:id="@+id/msg"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:textStyle="bold"         android:textSize="24sp"/> </LinearLayout>  

Next:
– Implement pinch-to-zoom amongst ScaleGestureDetector