2011-09-29 29 views
12

Sto sviluppando un gioco di corse automobilistiche. Sono in grado di muovermi, fermarmi, accelerare. Ma voglio che quando premo schermo poi car(bitmap of car image) dovrebbe essere simile, che aveva saltato sui suoi place.I sto usando surfaceview disegnare vistaEffetto zoom su SurfaceView Android

Non voglio usare 3D openGL. Qualsiasi aiuto è molto apprezzato

risposta

6

finalmente ho usato.Un evento di tocco, creo una bitmap più grande e disegnarlo sullo stesso posto. Quindi darà l'effetto 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); 

Quindi ora finalmente, l'attore di zoom sul codice touch sarà così. Nome classe 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; 
} 

}

per testarlo correttamente creare un'attività e impostare sopra la superficie all'attività sfondo

setContentView(new ZoomonTouc(this)); 
Problemi correlati