2013-07-15 5 views
0

Мне нужно создать план, который можно прокручивать и масштабировать. Некоторые разделы этого плана должны быть связаны с другими видами деятельности (например, кухней). Моя идея состояла в том, чтобы проложить простую кнопку на кухне. С помощью щелчка на нем вы можете попасть на кухню.Android: кнопка на WebView-Element (.png-Image)

Из scrolling- и трансфокации-требование я создал 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"); 

Что нужно сделать, чтобы установить кнопку для каждого postition на моей WebView (Floorplan)?

Thx Arne

ответ

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 urls используйте Href = "act: kitchen"

Смежные вопросы