Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

WebViewでのタッチイベントについて

$
0
0
Androidでのアプリ開発についてです。 Eclipse IndigoのEclipse IDE for Java DevelopersでAndroid2.3.3をターゲットに作成しています。 WebViewで簡易ブラウザを表示し、ブラウザ内のタップした位置を保存。 その後、実行ボタンを押すことで保存した位置を自動でタップするアプリを作ろうと思っています。 一応作りかけを載せておきますが、Webを表示させたところからほとんど進んでいません。タップした位置の取得・保存はひとまず後回しとして、現在知りたい点はどうやったらWebページの指定位置をタップできるかです。 御助力お願いします。 以下はWebViewでYahoo! Japanのページを表示させるコードです。メニューボタンから「クリック」をタップすると丁度広告の位置をクリックするようにしたのですが反応してくれません。 import android.os.Bundle; import android.os.SystemClock; import android.app.Activity; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.Window; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ArrayAdapter; import android.annotation.SuppressLint; public class MainActivity extends Activity { long downTime = SystemClock.uptimeMillis(); long eventTime = SystemClock.uptimeMillis(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //タイトルバーを削除する requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); // レイアウトで指定したWebViewのIDを指定する。 WebView myWebView = (WebView)findViewById(R.id.webView1); // リンクをタップしたときに標準ブラウザを起動させない myWebView.setWebViewClient(new WebViewClient()); // 最初にYahoo Japanのページを表示する。 myWebView.loadUrl("ヤフーのURL"); // javascriptを許可する myWebView.getSettings().setJavaScriptEnabled(true); // 右側のスクロールバーの隙間をなくす myWebView.setVerticalScrollbarOverlay(true); } // 画面をタッチした時のイベント処理 public boolean onTouchEvent(MotionEvent event) { String data; data = "Action:" + event.getAction() + ", X:" + event.getX() + ", Y:" + event.getY(); return true; } // メニュー画面の設定 public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } // メニュー画面での動作 public boolean onOptionsItemSelected(MenuItem item) { // 「クリック」が押された場合、以下の処理を行う。 if(item.toString().equals("クリック") == true){ // 指定された位置をタップする。 MotionEvent ev = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, 217, 70, 0); this.onTouchEvent(ev); } return super.onOptionsItemSelected(item); } //バックキーが押されてもアプリを終了しない public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { WebView webView =(WebView)findViewById(R.id.webView1); webView.goBack(); return true; } return super.onKeyDown(keyCode, event); } }

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>