0

スクロールとズームが可能なフロアプランを作成する必要があります。このプランの一部のセクションは、他のアクティビティ (キッチンなど) にリンクする必要があります。私のアイデアは、キッチン領域にシンプルなボタンを配置することでした。それをクリックすると、キッチンアクティビティにアクセスできます。

スクロールとズームの要件のため、フロアプランを含む WebView を作成しました。

<LinearLayout xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".FloorplanActivity"     
xmlns:android="http://schemas.android.com/apk/res/android">

<WebView
    android:id="@+id/webViewFloorplan"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >

    <Button
        android:id="@+id/buttonKuehltheke"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</WebView>

</LinearLayout> 

しかし今、フロアプランの特定の領域にボタンを配置することができません。ボタンは常にフロアプランの左上隅に表示されます。

MainActivity コード:

    WebView wvFloorplan = (WebView) findViewById(R.id.webViewFloorplan);
    wvFloorplan.getSettings().setBuiltInZoomControls(true);
    wvFloorplan.loadUrl("file:///android_asset/services_plan.png");

WebView (フロアプラン) のすべての位置にボタンを設定するには、何をする必要がありますか?

Thxアルネ

4

1 に答える 1

0

この WebView をスクロールしてズームすると、キッチン セクションの座標が動的になるため、ボタンを配置するのが難しくなります。

WebView.shouldOverrideUrlLoading をオーバーライドすることをお勧めします。このようにして、html を使用してキッチン アクティビティへのリンクを作成できます。

wvFloorplan.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("act:")) {
            Intent intent = new Intent( <kitchen activity> );
            startActivity(intent);
            return true;
        }
        return false;
    }
});

画像の一部を別のリンクにマップするには、画像の周りに html ラッパーを記述する必要がありますが、座標は静的になります。http URL の代わりに Href="act:kitchen" を使用します

于 2013-07-22T18:33:52.503 に答える