2

Android についてもう 1 つ質問があります。今日、私は WebView を使用して画像を表示しようとしています。画像のサイズがビューよりも大きいため、ユーザーはスクロールできます。今、私が達成したいのは、ユーザーが画像 (webview 内) のどこかに触れると、イベントがトリガーされ、タッチの座標が保存されることです。

xml レイアウトで onClick を使用してこれを実行しようとすると、パラメーターとして取得するのは、クリック イベントをトリガーするビュー オブジェクトだけです。ここに私のxmlがあります:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView 
    android:id="@+id/upperview" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:layout_weight="1"
    android:onClick="imageClicked" />
<WebView 
    android:id="@+id/lowerview" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:layout_weight="1" />

</LinearLayout>

今ここに私の活動があります:

public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    WebView upperview = (WebView) findViewById(R.id.upperview);
    upperview.getSettings().setBuiltInZoomControls(true);
    upperview.loadUrl("file:///android_asset/texture.png");

    WebView lowerview = (WebView) findViewById(R.id.lowerview);
    String htmlstring = "<h1>Header</h1><p>This is HTML text<br /><i>Formatted in italics</i></p>";
    lowerview.loadData(htmlstring, "text/html", "utf-8");
}

public void imageClicked(View view) {

}
}

座標の場所がわからなかったため、まだ imageClicked メソッド内に関数はありません。私はこれを間違っていますか?xml レイアウトの onClick 属性は、webview の一般的なクリック/タッチにのみ対応するのではないかと考えていました。私が望むものを達成するための代替手段はありますか? 前もって感謝します :)

4

2 に答える 2

1

必要なのは onTouchEvent です: Android ガイド

于 2012-07-27T06:26:36.327 に答える
1

onClick の代わりに onTouch イベントを試しましたか。onTouch イベントは、x 座標と y 座標を提供します。ここをチェック

于 2012-07-27T06:30:45.360 に答える