我在以下关于stacoverflow之类的日文服务的问题问过,但是没有人回答。 所以,让我在这里问。请原谅我的英语不好。
我正在使用适用于Android ver和2层的Google Maps API的Tile Overlay。 然后我要更改图层。 要用英语解释这对我来说太难了...所以请阅读我写的代码。
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(mTileOverlay != null && seekBar.getProgress() > 50) {
mTileOverlay.remove();
setupOverlayLayersA(_mMap); //set Layer A
mTileOverlay.setTransparency(1.0f - ((float) progress - 50f) / 50f);
}else if (seekBar.getProgress() == 50) {
mTileOverlay.setTransparency(1.0f);
}else if(seekBar.getProgress() < 50){
mTileOverlay.remove();
setupOverlayLayersB(_mMap); //set Layer B
mTileOverlay.setTransparency((float) progress / (float) 50);
}
}
此问题是在更改搜索进度时重复“删除”和“设置层”。我想做的是,当搜索进度超过50或少于50时,仅更改一次图层,并启用透明度 我应该如何修复代码?
*我想做的就是这样...
SeekBar
B -------------- 50 -------------- A
| ---------------------------------- |
透明度
B -------------- 50 -------------- A
0.0f ---------- 1.0f ------------ 0.0f
答案 0 :(得分:0)
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(mTileOverlay != null && seekBar.getProgress() > 50) {
if(seekBar.getProgress() == 51){
mTileOverlay.remove();
setupOverlayLayersA(_mMap); //set Layer A
}
mTileOverlay.setTransparency(1.0f - ((float) progress - 50f) / 50f);
}else if (seekBar.getProgress() == 50) {
mTileOverlay.setTransparency(1.0f);
}else if(seekBar.getProgress() < 50){
if(seekBar.getProgress() == 49){
mTileOverlay.remove();
setupOverlayLayersB(_mMap); //set Layer B
}
mTileOverlay.setTransparency((float) progress / (float) 50);
}
}