实施GestureDetector一个ImageView的 [英] implement GestureDetector for an ImageView
本文介绍了实施GestureDetector一个ImageView的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
好moorning:
我在我的活动的ImageView的和我的设置好的的的OntOuchListner()我的ImageView,这意味着我实现了这个接口为我的ImageView的是这样的:
公共类mapActivity扩展活动
{
// --------------------------------------
私人ImageView的ImageView的;
/ **
*第一次创建活动时调用。
* /
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
ImageView的=(ImageView的)this.findViewById(R.id.imageView1);
AddImageViewEvents();
}
私人无效AddImageViewEvents(){
imageView.setOnTouchListener(新ImageView.OnTouchListener(){
公共布尔onTouch(视图V,MotionEvent事件){
INT动作,pointerCount,我;
行动= event.getAction();
pointerCount = event.getPointerCount();
开关(动作){
案例MotionEvent.ACTION_DOWN:
// code在这里
打破;
案例MotionEvent.ACTION_MOVE:
// code在这里
打破;
默认:
打破;
}
返回true;
}
}
我想通过同样的方法设置GestureDetector我的ImageView,我不知道这是可能的。
感谢。
解决方案
公共类TestImageView扩展ImageView的实现OnGestureListener {
公共TestImageView(上下文的背景下){
超(上下文);
// TODO自动生成构造函数存根
setOnTouchListener(新View.OnTouchListener(){
@覆盖
公共布尔onTouch(视图V,MotionEvent事件){
// TODO自动ge`enter code here`nerated方法存根
返回false;
}
});
}
@覆盖
公共布尔onDown(MotionEvent E){
// TODO自动生成方法存根
返回false;
}
@覆盖
公共布尔onFling(MotionEvent E1,E2 MotionEvent,浮velocityX,
浮动velocityY){
// TODO自动生成方法存根
返回false;
}
@覆盖
公共无效onLong preSS(MotionEvent E){
// TODO自动生成方法存根
}
@覆盖
公共布尔onScroll(MotionEvent E1,E2 MotionEvent,浮distanceX,
浮动distanceY){
// TODO自动生成方法存根
返回false;
}
@覆盖
公共无效OnShow中preSS(MotionEvent E){
// TODO自动生成方法存根
}
@覆盖
公共布尔onSingleTapUp(MotionEvent E){
// TODO自动生成方法存根
返回false;
}
}
现在你可以在你的XML只使用的ImageView的TestImageView代替。
Good moorning :
I have an ImageView in my Activity and I setted the OntOuchListner() to my ImageView, which means that I implemented that interface for my ImageView like this :
public class mapActivity extends Activity
{
//--------------------------------------
private ImageView imageView;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView = (ImageView) this.findViewById(R.id.imageView1);
AddImageViewEvents();
}
private void AddImageViewEvents() {
imageView.setOnTouchListener(new ImageView.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int action, pointerCount, i;
action = event.getAction();
pointerCount = event.getPointerCount();
switch (action) {
case MotionEvent.ACTION_DOWN:
//code here
break;
case MotionEvent.ACTION_MOVE:
//code here
break;
default:
break;
}
return true;
}
}
I want by the same way set the GestureDetector to my ImageView, I don't know if this is possible.
Thanks.
解决方案
public class TestImageView extends ImageView implements OnGestureListener{
public TestImageView(Context context) {
super(context);
// TODO Auto-generated constructor stub
setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-ge`enter code here`nerated method stub
return false;
}
});
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
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;
}
}
Now you can use TestImageView in your xml instead of just ImageView.
这篇关于实施GestureDetector一个ImageView的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文