【问题标题】:Zoom effect on Android SurfaceViewAndroid SurfaceView 上的缩放效果
【发布时间】:2011-11-27 10:12:39
【问题描述】:

我正在开发一款赛车游戏。我能够移动、停止、加速。但我希望当我按下屏幕时,car(bitmap of car image) 应该看起来像,它已经跳到了它的位置。我正在使用surfaceview来绘制视图

我不想使用 3D openGL。非常感谢任何帮助

【问题讨论】:

    标签: android android-canvas surfaceview


    【解决方案1】:

    最后我使用了。在触摸事件中,我创建了一个更大的位图并将其绘制在同一个地方。所以它会产生缩放效果

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

    所以现在终于,Zooming actor on touch 代码将是这样的。类名 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));
    

    【讨论】:

      猜你喜欢
      • 2013-04-13
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 1970-01-01
      • 2014-11-05
      • 2016-08-01
      • 2015-07-24
      • 1970-01-01
      相关资源
      最近更新 更多