Android滑動螢幕使螢幕上的圖形移動
阿新 • • 發佈:2019-01-01
Android瘋狂講義第三章第一個示例是控制飛機移動,裡面的監聽器是用鍵盤的,但是我沒見過有鍵盤的手機,所以自己改成了滑動螢幕控制飛機移動。
1首先,要準備兩張圖片,一個背景,一個飛機。
我直接用window自帶的畫圖,畫了兩個圖片
恩,,,這就是俺家的飛機
這就是背景,,顏色有點汙。
2直接把這兩個圖片複製貼上到drawable資料夾下。
public class PlaneView extends View { public float currentX; public float currentY; Bitmap plane; public PlaneView(Context context) { super(context); plane= BitmapFactory.decodeResource(context.getResources(),R.drawable.a); setFocusable(true); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p=new Paint(); canvas.drawBitmap(plane,currentX,currentY,p); } }
自己建立一個view類,就是飛機的檢視,的確和書上的一樣
MainActivity是這個樣子的:
public class FourButton extends AppCompatActivity { private int speed=12; private float x1,x2,y1,y2; PlaneView planeView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); planeView = new PlaneView(this); setContentView(planeView); planeView.setBackgroundResource(R.drawable.b); WindowManager windowManager=getWindowManager(); final Display display=windowManager.getDefaultDisplay(); int screenWidth=display.getWidth(); int screenHeight=display.getHeight(); planeView.currentX=screenWidth/2; planeView.currentY=screenHeight/2; } @Override public boolean onTouchEvent(MotionEvent event) { if(event.getAction()==MotionEvent.ACTION_DOWN){ x1=event.getX(); y1=event.getY(); } if(event.getAction()==MotionEvent.ACTION_UP){ x2=event.getX(); y2=event.getY(); if(y1-y2>50){ //up planeView.currentY-=speed; } if(y2-y1>50){ //down planeView.currentY+=speed; } if(x1-x2>50){ //left planeView.currentX-=speed; } if(x2-x1>50){ //right planeView.currentX+=speed; } } planeView.invalidate(); return true; } }
等結束了,就可以除錯了,方塊可以按照我們滑動的方向移動。