2011-09-29 82 views
12

我正在開發一個汽車競賽遊戲。我能夠移動,停止,加速。但我想,當我按下屏幕,然後car(bitmap of car image)應該是什麼樣子,它已經在其place.I跳上正在使用surfaceview繪製視圖縮放對Android SurfaceView的影響

我不想使用3D openGL的。任何幫助非常感謝

回答

6

終於我用了。觸摸事件,我創建一個更大的位圖,並在同一地點繪製它。所以它會給變焦效果

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

所以現在最後,觸摸代碼上的縮放actor將會是這樣的。類名稱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; 
} 

}

爲了測試它正確地創建一個活動和上述的表面設置爲活動背景

setContentView(new ZoomonTouc(this));