1
在我的活动中,我有一个imageView(在顶部)和textView(在底部)。使用这两个视图我显示一个图像及其相应的描述。我已经使用'SimpleOnGestureListener'实现了fling,这样用户就可以浏览不同的图像及其相应的描述(每次投掷时,我都会加载不同的图像并显示给用户)。onClick阻止onFling
现在,当我为ImageView添加onClickListener时(我需要检测onClick,以便可以显示带有图像描述的Toast),问题就开始了。但onClick似乎阻止了投掷事件。我如何检测投掷。
是否已经通过这个论坛下面的问题(和其他几个)不见了..
android - giving onTouch priority over onClick
Android onClick blocking onFling
但还是没能找出解决方案。
下面给出的是代码
public class MainActivity extends Activity{
ImageView m_imageView;
String[] m_imageNames = { "img1__", "img2__", "img2__"};
int m_index = 0;
Resources m_res;
Drawable m_drawable;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("INFO", "Inside oncreate");
m_imageView = (ImageView)findViewById(R.id.imageView1);
m_res = getResources();
int imageId = m_res.getIdentifier(m_imageNames[m_index], "drawable", getPackageName());
Drawable drawable = m_res.getDrawable(imageId);
m_imageView.setImageDrawable(drawable);
m_imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.v("INFO", "Inside onClick");
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.v("INFO", "onTouchEvent detected");
return gestureDetector.onTouchEvent(event);
}
SimpleOnGestureListener simpleOnGestureListener
= new SimpleOnGestureListener(){
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
//Fling code goes here
}
};
GestureDetector gestureDetector = new GestureDetector(null, SimpleOnGestureListener);
}
我不确定你从代码中拿出了什么,但是你有一些严重的支架平衡问题正在发生。你能解决这些问题并更新你的代码吗? – Eric
对不起,哥们...这样做(这变得非常可怜......当我把代码形式的eclipse复制到这里时).. – Raj