2010-06-14 25 views
0

我已經使用了一些示例代碼,並試圖調整它,讓我允許用戶觸摸屏幕和放大代碼運行良好,沒有錯誤,但當我觸摸屏幕時,什麼也沒有發生使用ontouch放大

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; 
     } 
} 

回答

1

喜ontouch事件是不好的縮放圖像

讓你用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; 
    }