12
我正在開發一個汽車競賽遊戲。我能夠移動,停止,加速。但我想,當我按下屏幕,然後car(bitmap of car image)
應該是什麼樣子,它已經在其place.I跳上正在使用surfaceview
繪製視圖縮放對Android SurfaceView的影響
我不想使用3D openGL的。任何幫助非常感謝
我正在開發一個汽車競賽遊戲。我能夠移動,停止,加速。但我想,當我按下屏幕,然後car(bitmap of car image)
應該是什麼樣子,它已經在其place.I跳上正在使用surfaceview
繪製視圖縮放對Android SurfaceView的影響
我不想使用3D openGL的。任何幫助非常感謝
終於我用了。觸摸事件,我創建一個更大的位圖,並在同一地點繪製它。所以它會給變焦效果
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));