Question

I have used some sample code and am trying to tweak it to let me allow the user to touch the screen and zoom in the code runs fine with no errors but when I touch the screen nothing happens

package com.thomas.zoom;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;

public class Zoom extends View {
        private Drawable image;

        private int zoomControler=20;

        public Zoom(Context context)
        {
                super(context);
                image=context.getResources().getDrawable(R.drawable.icon);
                setFocusable(true);

        }
        @Override
        protected void onDraw(Canvas canvas) {
                // TODO Auto-generated method stub
                super.onDraw(canvas);
        //here u can control the width and height of the images........ this line is very important
        image.setBounds((getWidth()/2)-zoomControler, (getHeight()/2)-zoomControler, (getWidth()/2)+zoomControler, (getHeight()/2)+zoomControler);
                image.draw(canvas);
        }
        public boolean onTouch(int action, MotionEvent event) {
               action= event.getAction();
               if(action == MotionEvent.ACTION_DOWN){
                   zoomControler+=10;               
                   }


                invalidate();
                return true;
        }
}
Was it helpful?

Solution

hi ontouch event is not good for zooming images

so you use onkeylistener

public boolean onKeyDown(int keyCode, KeyEvent event) {
            if(keyCode==KeyEvent.KEYCODE_DPAD_UP)// zoom in
                    zoomControler+=10;
            if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN) // zoom out
                    zoomControler-=10;
            if(zoomControler<10)
                    zoomControler=10;

            invalidate();
            return true;
    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top