Я испытываю затруднения, заставляя мое действие генерировать MotionEvent. ACTION_UP. Вероятно, ошибка новичка.
В LogCat я только вижу событие ACTION_MOVE (который является международным значением 3). Я также вижу координаты X/Y. Никакой ACTION_DOWN и никакой ACTION_UP.
Я искал везде решение. Я нашел один вопрос на форуме, который, кажется, совпадает с моей проблемой, но никакое решение не предложено: http://groups.google.com/group/android-developers/browse_thread/thread/9a9c23e40f02c134/bf12b89561f204ad?lnk=gst&q=ACTION_UP#bf12b89561f204ad
Вот мой код:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.webkit.WebView;
public class Brand extends Activity {
public WebView webview;
public float currentXPosition;
public float currentYPosition;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
webview = new WebView(this);
setContentView(webview);
webview.loadUrl("file:///android_asset/Brand.html");
}
@Override
public boolean onTouchEvent(MotionEvent me) {
int action = me.getAction();
currentXPosition = me.getX();
currentYPosition = me.getY();
Log.v("MotionEvent", "Action = " + action);
Log.v("MotionEvent", "X = " + currentXPosition + "Y = " + currentYPosition);
if (action == MotionEvent.ACTION_MOVE) {
// do something
}
if (action == MotionEvent.ACTION_UP) {
// do something
}
return true;
}
}
Ваша проблема в том, что вы делаете это из WebView. WebView имеют встроенное сенсорное управление, позволяющее пользователю прокручивать страницу, и это должно мешать вам получать MotionEvents. Казалось бы, вам нужно будет использовать другой View. Например, я только что запустил ваш код, сделав следующую замену:
TextView tv = new TextView(this);
setContentView(tv);
вместо
webview = new WebView(this);
setContentView(webview);
webview.loadUrl("file:///android_asset/Brand.html");
, а все остальное сработало. Примечание. Я использовал TextView в качестве всего представления только для простоты. Это работает с ViewGroups, как LinearLayouts, RelativeLayouts, пользовательскими представлениями с холстами и т. Д. Просто кажется, что WebView являются особенными. (Я также получал ACTION_MOVE только при использовании WebView.) Итак, я надеюсь, что вы сможете обойтись без использования чего-то другого, кроме WebView!