我正在尝试在我的Android应用程序中显示街景,但是当我运行我的应用程序时,我的Android设备上有黑屏而不是街景。我使用StreetViewPanoramaView。任何帮助 我的XML代码在XML格式中使用了这个...
<com.google.android.gms.maps.StreetViewPanoramaView
android:layout_below="@+id/place_autocomplete_fragment"
android:id="@+id/steet_view_panorama"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Livesearch.Java是我的java活动,我试图显示街景。
public class Livesearch extends AppCompatActivity {
StreetViewPanoramaFragment streetViewPanoramaFragment;
StreetViewPanoramaView mStreetViewPanoramaView;
private StreetViewPanorama mPanorama;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.livesearch);
PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)
getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
mStreetViewPanoramaView = (StreetViewPanoramaView) findViewById(R.id.steet_view_panorama);
mStreetViewPanoramaView.onCreate(savedInstanceState);
mStreetViewPanoramaView.getStreetViewPanoramaAsync(new OnStreetViewPanoramaReadyCallback() {
@Override
public void onStreetViewPanoramaReady(StreetViewPanorama panorama) {
panorama.setPosition(new LatLng(55.758818, 37.620587));
mPanorama=panorama;
}
});
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
Toast.makeText(getApplicationContext(),place.getName(),Toast.LENGTH_LONG).show();
}
@Override
public void onError(Status status) {
// TODO: Handle the error.
Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
mStreetViewPanoramaView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
mStreetViewPanoramaView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mStreetViewPanoramaView.onPause();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mStreetViewPanoramaView.onLowMemory();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mStreetViewPanoramaView.onSaveInstanceState(outState);
}
}
答案 0 :(得分:0)
我检查了你的代码,使用相同的代码制作了一个演示应用程序,它对我来说非常适合。我刚刚删除了片段代码。我想您的Google Maps API密钥存在问题。你加了吗?如果没有,请按照以下说明操作:
从控制台获取Google API密钥。请按照此链接查看步骤https://developers.google.com/maps/documentation/android-api/signup
在应用标记
中的AndroidManifest.xml中添加Google API密钥
例如
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!--
The API key for Google Maps-based APIs is defined as a string resource.
(See the file "res/values/google_maps_api.xml").
Note that the API key is linked to the encryption key used to sign the APK.
You need a different API key for each encryption key, including the release key that is used to
sign the APK for publishing.
You can define the keys for the debug and release targets in src/debug/ and src/release/.
-->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR_KEY" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
希望对你有用!
答案 1 :(得分:0)
这项工作。
AndroidManifest.xml
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="Your API Key" />
渐变
implementation 'com.google.android.gms:play-services-maps:16.1.0'
活动
class MainActivity : AppCompatActivity(), OnStreetViewPanoramaReadyCallback {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val streetViewPanoramaFragment = supportFragmentManager
.findFragmentById(R.id.streetViewMap) as SupportStreetViewPanoramaFragment
streetViewPanoramaFragment.getStreetViewPanoramaAsync(this)
}
override fun onStreetViewPanoramaReady(panorama: StreetViewPanorama?) {
panorama?.setPosition(LatLng(-33.87365, 151.20689))
}
}
布局(activity_main)
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"
tools:context=".MainActivity">
<fragment
android:id="@+id/streetViewMap"
android:name="com.google.android.gms.maps.SupportStreetViewPanoramaFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>