특정 기기에서 Google 지도를 올바르게 표시할 수 없는 경우 라이트 모드를 사용하는 것이 좋았습니다.
4843 단어 안드로이드GoogleMapsAPI
개요
Google Maps Android API를 사용하여 Google Maps를 표시하는 경우에 특정 기기에서 다음과 같은 검은 영역이 출현(스크린샷에서는 나타나지 않음)하고 Google Maps를 잘 표시할 수 없는 경우에 대처했기 때문에 메모.
대처방침
문제가 발생하는 기기
수중의 검증 단말 중 이하의 2 단말로 현상이 재현했다.
터미널
OS 버전
Disney Mobile on docomo N-03E
4.0.4
GALAXY S II SC-02C
4.0.3
또한 복수의 단말에서의 검증은, 시간적인 문제로 불가능했기 때문에 이 2예로 판단. 비교적 낡은 단말에서 발생하고 있는 점, 특정의 OS의 버젼으로 발생하고 있지 않는 점으로부터 판단해 대책을 취하기로 했다.
지도 표시 방법 변경
Google Maps Android API 문서 을 확인하면, 라이트 모드라는 표시 방법이 준비되어 있었다.
문제가 발생하는 기기
수중의 검증 단말 중 이하의 2 단말로 현상이 재현했다.
터미널
OS 버전
Disney Mobile on docomo N-03E
4.0.4
GALAXY S II SC-02C
4.0.3
또한 복수의 단말에서의 검증은, 시간적인 문제로 불가능했기 때문에 이 2예로 판단. 비교적 낡은 단말에서 발생하고 있는 점, 특정의 OS의 버젼으로 발생하고 있지 않는 점으로부터 판단해 대책을 취하기로 했다.
지도 표시 방법 변경
Google Maps Android API 문서 을 확인하면, 라이트 모드라는 표시 방법이 준비되어 있었다.
Google Maps를 라이트 모드로 이용하면 비트맵 이미지로 표시할 수 있다. 일반 모드와 라이트 모드의 기능 차이는 문서로 확인
해결 방법
특정 OS 버전을 임계값으로 사용하지 않는 버전의 경우 라이트 모드를 사용하여 Google 지도를 표시합니다. 이번에는 역치로 하는 버전을 KitKat로 지정했다.
구현
GoogleMapOptions에 라이트 모드를 사용할지 지정하는 메소드가 있으므로 OS 버전에 따라 전환한다.
// OSバージョンによってライトモードを使用するか設定
GoogleMapOptions options = new GoogleMapOptions();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
options.liteMode(true);
} else {
options.liteMode(false);
}
// SupportMapFragmentのインスタンスを取得する際にGoogleMapOptionsを引数として渡す
SupportMapFragment mapFragment = SupportMapFragment.newInstance(options);
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
// 各種設定
}
});
// MapFragmentを表示
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.map, mapFragment);
ft.commit();
결과
Disney Mobile on docomo N-03E, GALAXY S II SC-02C의 2단자에서 현상이 재현되지 않는 것을 확인했다. 또한, 다른 단말기에서도 문제는 발생하지 않는다.
Reference
이 문제에 관하여(특정 기기에서 Google 지도를 올바르게 표시할 수 없는 경우 라이트 모드를 사용하는 것이 좋았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Horie1024/items/5fea9ae38d9883f279b8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// OSバージョンによってライトモードを使用するか設定
GoogleMapOptions options = new GoogleMapOptions();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
options.liteMode(true);
} else {
options.liteMode(false);
}
// SupportMapFragmentのインスタンスを取得する際にGoogleMapOptionsを引数として渡す
SupportMapFragment mapFragment = SupportMapFragment.newInstance(options);
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
// 各種設定
}
});
// MapFragmentを表示
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.map, mapFragment);
ft.commit();
Disney Mobile on docomo N-03E, GALAXY S II SC-02C의 2단자에서 현상이 재현되지 않는 것을 확인했다. 또한, 다른 단말기에서도 문제는 발생하지 않는다.
Reference
이 문제에 관하여(특정 기기에서 Google 지도를 올바르게 표시할 수 없는 경우 라이트 모드를 사용하는 것이 좋았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Horie1024/items/5fea9ae38d9883f279b8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)