質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Q&A

解決済

1回答

966閲覧

Google Map TileOverlay 2つのレイヤーの切り替え

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

0グッド

0クリップ

投稿2018/08/17 05:56

Google MapのTile Overlayを使用しています。
Layerを2つ使っていて、
SeekBarで変更できるようにしています。
具体的には、以下のような感じです。


Layer : B--------DEFAULT----------A
Transparency : 0.0f--------1.0f-----------0.0f
progress : 0------------50------------100

Default値から左(50 > )にSeekBarを動かした場合、Bのレイヤーをsetする
Default値から右(50 < )にSeekBarを動かした場合、Aのレイヤーをsetする


上記を実装してみたのですが、
progressを変更する度、removeと、setupを繰り返してしまいます。
これではSeekBarを動かす度、透過度を変更しながら、なんども同じレイヤーをremoveしてsetupして....
となってしまいます。
これを、1度変更したらDefault値を超えない限りremoveとsetを繰り返さないようにしたいです。
具体的には、以下のようにしたいです。


Layer : B--------DEFAULT----------A
progress : 0------------50------------100

Default(50) 以下へprogressした場合
=> Aのレイヤをremoveし、Bのレイヤをset。
それ以降、progressを変更してもremoveとsetを繰り返さないで
Bのレイヤをsetしたまま透過度を変更できるようにする

Default(50) 以上へprogressした場合
=> Bのレイヤをremoveし、Aのレイヤをset。
それ以降、progressを変更してもremoveとsetを繰り返さないで
Aのレイヤをsetしたまま透過度を変更できるようにする


Java

1public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 2 if(mTileOverlay != null && seekBar.getProgress() > 50) { 3 4 mTileOverlay.remove(); //remove Layer B 5 setupOverlayLayersA(_mMap); //set Layer A 6 mTileOverlay.setTransparency(1.0f - ((float) progress - 50f) / 50f); 7 8 9 }else if (seekBar.getProgress() == 50) { 10 11 mTileOverlay.setTransparency(1.0f); 12 13 }else if(seekBar.getProgress() < 50){ 14 15 mTileOverlay.remove(); //remove Layer A 16 setupOverlayLayersB(_mMap); //set Layer B 17 mTileOverlay.setTransparency((float) progress / (float) 50); 18 19 } 20 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

下記で解決しました。

Java

1 2public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 3 if(mTileOverlay != null && seekBar.getProgress() > 50) { 4 5 if(seekBar.getProgress() == 51){ 6 mTileOverlay.remove(); 7 setupOverlayLayersA(_mMap); //set Layer A 8 } 9 10 mTileOverlay.setTransparency(1.0f - ((float) progress - 50f) / 50f); 11 12 13 }else if (seekBar.getProgress() == 50) { 14 15 mTileOverlay.setTransparency(1.0f); 16 17 }else if(seekBar.getProgress() < 50){ 18 19 if(seekBar.getProgress() == 49){ 20 mTileOverlay.remove(); 21 setupOverlayLayersB(_mMap); //set Layer B 22 } 23 24 mTileOverlay.setTransparency((float) progress / (float) 50); 25 26 } 27 }

投稿2018/08/17 06:17

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問