Here I'm discussing how to zoom a complete view with different UI controls in it.
For this i used setScaleX and setScaleY.
In order to work this correctly it need to specify the pivot point correctly. We can set our pivot point using setPivotX and setPivotY.
Main.xml
Here me only use that three buttons
For this i used setScaleX and setScaleY.
mainView.setScaleX(scaleX);
mainView.setScaleY(scaleY);
This will Scale the the view in X and Y axis. A value of scale 1 means that no scaling is applied.In order to work this correctly it need to specify the pivot point correctly. We can set our pivot point using setPivotX and setPivotY.
mainView.setPivotX(pivot.x);
mainView.setPivotY(pivot.y);
My complete code Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/linearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="wrap_content"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:id="@+id/linearLayout1">
<Button
android:text="Zoom In"
android:id="@+id/buttonZoomIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:text="Normal"
android:id="@+id/buttonNormal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:text="Zoom Out"
android:id="@+id/buttonZoomOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/imageView"
android:src="@drawable/honeycombdroid"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="200dp"
android:orientation="vertical"
android:layout_height="wrap_content"
android:id="@+id/linearLayout1">
<EditText
android:id="@+id/editText1"
android:layout_height="wrap_content"
android:text="EditText"
android:layout_width="match_parent"></EditText>
<EditText
android:id="@+id/editText1"
android:layout_height="wrap_content"
android:text="EditText"
android:layout_width="match_parent"></EditText>
<Button
android:text="Button"
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
</LinearLayout>
Here me only use that three buttons
Then My main activity classbuttonZoomIn ,buttonNormal andbuttonZoomOut
Here zoom is the main function for zoomingpublic class ZoomLayout extends Activity { View mainView = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mainView =(LinearLayout)findViewById(R.id.linearLayout); Button buttonZoomOut = (Button)findViewById(R.id.buttonZoomOut); Button buttonNormal = (Button)findViewById(R.id.buttonNormal); Button buttonZoomIn = (Button)findViewById(R.id.buttonZoomIn); buttonZoomOut.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { zoom(0.5f,0.5f,new PointF(0,0)); } }); buttonNormal.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { zoom(1f,1f,new PointF(0,0)); } }); buttonZoomIn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { zoom(2f,2f,new PointF(0,0)); } }); } /** zooming is done from here */ public void zoom(Float scaleX,Float scaleY,PointF pivot){ mainView.setPivotX(pivot.x); mainView.setPivotY(pivot.y); mainView.setScaleX(scaleX); mainView.setScaleY(scaleY); } }buttonZoomOut