你的位置:首页 > 操作系统

[操作系统]TouchScreenTest


MainActivity:

package com.example.touchscreentest;import android.os.Bundle;import android.R.layout;import android.app.Activity;import android.view.Menu;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.LinearLayout;public class MainActivity extends Activity {  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    //得到线性布局的容器    LinearLayout linearLayout=(LinearLayout)findViewById(R.id.a);    //创建出自定义的View    final MyView myView=new MyView(this);   //设置自定义组建的最大宽度和最大高度    myView.setMinimumHeight(300);    myView.setMinimumWidth(300);    myView.setOnTouchListener(new OnTouchListener() {            @Override      public boolean onTouch(View v, MotionEvent event) {        // TODO Auto-generated method stub        //设置位置        myView.current_x=(int)event.getX();        myView.current_y=(int)event.getY();        //设置位置之后开始重新画        myView.invalidate();        //返回true则表明已经处理了本事件        return true;              }    });    linearLayout.addView(myView);  }    @Override  public boolean onCreateOptionsMenu(Menu menu) {    // Inflate the menu; this adds items to the action bar if it is present.    getMenuInflater().inflate(R.menu.main, menu);    return true;  }}

MyView:

package com.example.touchscreentest;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.View;public class MyView extends View {  protected int current_x;  protected int current_y;  public MyView(Context context) {    super(context);    // TODO Auto-generated constructor stub  }  //重画时调用  @Override  protected void onDraw(Canvas canvas) {    // TODO Auto-generated method stub    super.onDraw(canvas);    Paint p=new Paint();    p.setColor(Color.RED);    canvas.drawCircle(current_x, current_y, 10, p);  }}

执行效果图: