手势使用
1.自定义的ListView
package com.example.test;
import android.content.Context;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RelativeLayout;
public class MyListView extends ListView implements OnTouchListener,
OnGestureListener {
private GestureDetector detector;
private int itemPostion;
private boolean isDelete;
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
detector = new GestureDetector(this);
setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return detector.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
if (!isDelete &&
e.getAction() == MotionEvent.ACTION_DOWN) {
itemPostion = pointToPosition((int)e.getX(), (int)e.getY());
}
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
if (!isDelete &&
Math.abs(velocityX)>Math.abs(velocityY)) {
ViewGroup viewGroup = (ViewGroup)getChildAt(itemPostion -
getFirstVisiblePosition());
RelativeLayout.LayoutParams rl = new RelativeLayout.LayoutParams(-2, -2);
rl.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
Button btn_del = new Button(getContext());
btn_del.setText("删除");
viewGroup.addView(btn_del, rl);
isDelete = true;
}
return false;
}
}
2.XML文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"/>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.example.test.MyListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
3.Activity代码
package com.example.test;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView)findViewById(R.id.listView);
List<String> list = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
list.add("item"+i);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.item,
R.id.tv_item,
list);
listView.setAdapter(adapter);
}
}
- XCode4.2-使用复杂的触摸和手势UIXXGestureRecognizer
- android中手势识别器的使用
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- iOS开发:如何使用iOS手势UIGestureRecognizer
- 使用手势实现翻页效果
- IOS 使用自定义手势屏蔽按钮解决方法/UITapGestureRecognizer屏蔽Button
- android2.2中默认浏览器无法使用手势放大缩小页面的问题定位
- Javascript 高级手势使用介绍
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- [Android分享] 使用触摸手势(二)
- 187,使用手势控制图片的缩放
- 使用手势对UIImageView进行缩放、旋转和移动(转)
- 使用Flutter仿写TikTok的手势交互
- IE8 中使用鼠标拖曳和鼠标手势
- Android Gesture 手势识别使用实例 - Android - mobile - ITeye论坛
- 用户手势检测-GestureDetector使用详解
- 图片随手势放大缩小PhotoView的使用
- Mouse Gestures-使用鼠标手势节制 Firefox
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- 使用iOS4的GestureRecognizers识别手势(Xcode4)