2011-09-29 26 views
12

Estoy desarrollando un juego de carrera de coches. Puedo moverme, parar, acelerar. Pero quiero que cuando se presiona la pantalla a continuación, car(bitmap of car image) debe ser similar, que había saltado en sus place.I estoy usando surfaceview dibujar vistaEfecto de zoom en Android SurfaceView

no quiero utilizar 3D OpenGL. Cualquier ayuda es muy apreciada

Respuesta

6

finalmente utilicé. En el evento táctil, creo un mapa de bits más grande y lo dibujo en el mismo lugar. Por lo tanto, dará efecto de zoom

Bitmap bitmapToZoom; // Create a Bitmap 
// Now zoom it 
bitmapToZoom=Bitmap.createScaledBitmap(bitmapToZoom, bitmapToZoom.getWidth()+30,bitmapToZoom.getHeight()+30, null); 
//now draw it again 
canvas.drawBitmap(bitmapToZoom, 0,0,null); 

Así que ahora, finalmente, Zooming actor en el código táctil será así. Nombre de clase ZoomonTouc.java

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.RectF; 
import android.view.MotionEvent; 
import android.view.SurfaceView; 

public class ZoomonTouc extends SurfaceView { 
public Bitmap mMyChracter; 

public ZoomonTouc(Context context) { 
    super(context); 
    mMyChracter = BitmapFactory.decodeResource(context.getResources(), 
      R.drawable.ic_launcher); 
    setWillNotDraw(false); 
} 

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawBitmap(mMyChracter, mMyChracter.getWidth()/2, mMyChracter.getHeight()/2, null); 
    invalidate(); 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    RectF rectF = new RectF(mMyChracter.getWidth()/2, mMyChracter.getHeight()/2, mMyChracter.getWidth() + 100, 
      mMyChracter.getHeight() + 100); 
    if (rectF.contains(event.getX(), event.getY())) { 
     mMyChracter = Bitmap.createScaledBitmap(mMyChracter, 
       mMyChracter.getWidth() + 10, mMyChracter.getHeight() + 10, 
       false); 
    } 
    return true; 
} 

}

Para probar correctamente crear una actividad y situado por encima de la superficie a fondo la actividad

setContentView(new ZoomonTouc(this)); 
Cuestiones relacionadas