2016-11-18 87 views
0

我無法弄清楚如何在谷歌地圖上的屏幕右上角放置一個按鈕我是Android開發新手,無法找到直接解釋這個怎麼做。我的主要活動代碼如下所示:谷歌地圖右上角的地方按鈕API

import android.os.Bundle; 
     import android.support.v7.app.AppCompatActivity; 

     import com.google.android.gms.maps.CameraUpdateFactory; 
     import com.google.android.gms.maps.GoogleMap; 
     import com.google.android.gms.maps.OnMapReadyCallback; 
     import com.google.android.gms.maps.SupportMapFragment; 
     import com.google.android.gms.maps.model.LatLng; 
     import com.google.android.gms.maps.model.LatLngBounds; 
     import com.google.android.gms.maps.model.MarkerOptions; 

public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback { 
    private final LatLng LOWER_WEST_BOUND = new LatLng(45.427882, 13.347119); 
    private final LatLng UPPER_EAST_BOUND = new LatLng(46.904552, 16.664808); 
    private final LatLng LJUBLJANA = new LatLng(46.052771, 14.503602); 
    private final LatLngBounds SLOVENIJA_OUTER_BOUNDS = new LatLngBounds(LOWER_WEST_BOUND, UPPER_EAST_BOUND); 

    private GoogleMap mMap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 

     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 


    /** 
    * Manipulates the map once available. 
    * This callback is triggered when the map is ready to be used. 
    * This is where we can add markers or lines, add listeners or move the camera. In this case, 
    * we just add a marker near Sydney, Australia. 
    * If Google Play services is not installed on the device, the user will be prompted to install 
    * it inside the SupportMapFragment. This method will only be triggered once the user has 
    * installed Google Play services and returned to the app. 
    */ 
    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 

     mMap.setLatLngBoundsForCameraTarget(SLOVENIJA_OUTER_BOUNDS); 
     mMap.addMarker(new MarkerOptions().position(LJUBLJANA).title("Marker in Ljubljana")); 
     mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LJUBLJANA, 15)); 
    } 

} 

所需的應用程序的外觀:

https://i.stack.imgur.com/n2FXF.png

我.xml文件看起來是這樣的:

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/map" 
    tools:context="com.fri.studentskaprehrana.MapsActivity" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    tools:layout="@layout/place_autocomplete_fragment" /> 
+0

謝謝你指着我重複,加之誰幫我個人的幫助我能找到解決方案。 – Clutchy

回答

1

要放置圖標的位置在操作欄中。若要將菜單項出現,指the menu docs

對於菜單,請嘗試:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id="@+id/action_button" 
     android:icon="@drawable/buttonIcon" 
     app:showAsAction="always" 
     android:title="Button title" /> 
</menu> 
+0

我仍然不確定如何在我的xml文件中添加菜單項。 – Clutchy

+0

編輯,看看 – rhari

+0

app:showAsAction =「always」會拋出一個錯誤,我應該在哪裏放這個 – Clutchy

0

很簡單。
將菜單添加到您擁有該片段的活動,並且您將在該處有按鈕。僅添加一個菜單項。

1

它非常簡單和容易

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/rr" 
    > 


    <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context="com.fri.studentskaprehrana.MapsActivity" /> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/a100dp" 
     android:orientation="horizontal" 
     android:gravity="right" 
     android:id="@+id/lll"> 


     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Your Button" 
      android:id="@+id/button" /> 
    </LinearLayout> 

</RelativeLayout> 

與XML格式的代碼替換所有代碼。你可以證明,如果你想

編輯:如果你想要像菜單欄,您可以使用此設計:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 


    <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context="com.fri.studentskaprehrana.MapsActivity" /> 


    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:background="#322929"> 


     <ImageView 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:id="@+id/imageView40" 
      android:layout_centerVertical="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_marginRight="20dp" 
      android:background="#72c33c" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Your text" 
      android:id="@+id/textView111" 
      android:layout_centerVertical="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_marginLeft="10dp" 
      android:textColor="#ffffff" /> 
    </RelativeLayout> 

</RelativeLayout> 
+0

這會將該按鈕置於操作欄下方,同時@ dimen/a100dp也會給我一個錯誤。 – Clutchy

+1

改爲使用100dp @ dimen/a100dp。您應該選擇使用操作欄或創建一個基本佈局,如我的答案。如果你想使用操作欄,其他答案是你的解決方案 –