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 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。