2011-09-29 81 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));