Android之屏幕测试

时间:2023-03-08 19:57:33
Android之屏幕测试

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

  

执行效果图:

Android之屏幕测试