MotionEvent.getSize()
时间: 2023-06-23 12:58:27 浏览: 44
MotionEvent.getSize()是一个方法,它可以获取当前触摸事件的接触面积大小。这个方法返回一个浮点数,表示触摸接触面积的大小,单位是像素。
需要注意的是,这个方法并不是所有的设备都支持,如果设备不支持,则返回默认值1.0f。
以下是一个示例代码,演示了如何使用MotionEvent.getSize()方法获取触摸接触面积的大小:
```
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
float size = event.getSize();
// TODO: 处理按压事件
break;
case MotionEvent.ACTION_MOVE:
// TODO: 处理移动事件
break;
case MotionEvent.ACTION_UP:
// TODO: 处理抬起事件
break;
}
return true;
}
```
需要注意的是,getSize()方法获取的是接触面积的大小,并不是压力值。如果需要获取压力值,可以使用MotionEvent.getPressure()方法。
相关问题
android 红外屏 手接触面积检测
如果您想检测用户手指接触的红外屏幕面积,您可以使用Android中的触摸事件来实现。您可以通过以下步骤来实现:
1.在您的布局文件中添加一个红外屏幕视图。
2.在您的Activity类中,获取对该视图的引用。
3.为该视图设置触摸事件侦听器。
4.在触摸事件处理程序中,检查用户手指是否接触了屏幕并获取接触区域的大小。
以下是一个简单的示例代码:
```
public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
private View infraredScreen;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取红外屏幕视图的引用
infraredScreen = findViewById(R.id.infrared_screen);
// 设置触摸事件侦听器
infraredScreen.setOnTouchListener(this);
}
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
// 用户手指接触屏幕,获取接触区域的大小
int touchArea = motionEvent.getSize();
// 处理接触区域的大小
// ...
return true;
}
return false;
}
}
```
请注意,这只是一个简单的示例。根据您的具体需求,您可能需要进行更复杂的处理。
Android 左滑删除代码
您好,以下是 Android 左滑删除的示例代码:
```
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List<String> dataList;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化数据
dataList = new ArrayList<>();
for (int i = 0; i < 20; i++) {
dataList.add("item " + i);
}
listView = findViewById(R.id.list_view);
adapter = new MyAdapter(dataList);
listView.setAdapter(adapter);
//设置ListView滑动监听
listView.setOnTouchListener(new View.OnTouchListener() {
private float startX, startY;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = motionEvent.getX();
startY = motionEvent.getY();
break;
case MotionEvent.ACTION_MOVE:
float endX = motionEvent.getX();
float endY = motionEvent.getY();
//判断滑动方向
if (endX - startX > 50 && Math.abs(endY - startY) < 50) {
int position = listView.pointToPosition((int) startX, (int) startY);
if (position != AdapterView.INVALID_POSITION) {
adapter.deleteItem(position);
return true;
}
}
break;
default:
break;
}
return false;
}
});
}
private class MyAdapter extends BaseAdapter {
private List<String> dataList;
MyAdapter(List<String> dataList) {
this.dataList = dataList;
}
@Override
public int getCount() {
return dataList.size();
}
@Override
public Object getItem(int i) {
return dataList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if (view == null) {
view = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_layout, null);
holder = new ViewHolder();
holder.textView = view.findViewById(R.id.text_view);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.textView.setText(dataList.get(i));
return view;
}
private void deleteItem(int position) {
dataList.remove(position);
notifyDataSetChanged();
}
private class ViewHolder {
TextView textView;
}
}
}
```
希望能对您有帮助。