前提・実現したいこと
Google MapsのAPIを使用し
TileOverlayでgoogle mapの上にタイルを重ね
透過度をseekBarで変更できるようにしたいです。
現在は、ボタンを押下した時透過度が変更されるようにしていますが
seekbarとの連携が取れません。
何か、良い方法はありますでしょうか?
私自身、Android開発はもちろん、Java,XMLでの開発は
まだ2週間も経っていません。
是非とも、ご教示いただければ幸いでございます。
仕事の都合上、コードは部分的に簡単に編集したものしかお見せできませんが。。。
申し訳ございません。
java
1private TileOverlay mTileOverlay; 2 3 @Override 4 public void onMapReady(GoogleMap map) { 5 mTileOverlay = map.addTileOverlay(new TileOverlayOptions() 6 .tileProvider(new UrlTileProvider() {...}) 7 .transparency(0.0f)); 8 } 9 10 11 public void setTrans(){ 12 SeekBar seekBar = findViewById(R.id.SeekBar); 13 seekBar.setMax(100); 14 seekBar.setProgress(0); 15 seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 16 17 @Override 18 public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 19 //=>ここに透過する処理 20 } 21 @Override 22 public void onStartTrackingTouch(SeekBar seekBar) { 23 24 } 25 @Override 26 public void onStopTrackingTouch(SeekBar seekBar) { 27 28 } 29 }); 30 } 31 32 public void updateTileOverlayTransparency(float f) { 33 if (tileOverlay != null) { 34 tileOverlay.setTransparency(f - tileOverlay.getTransparency()); 35 } 36 } 37
試したこと
条件分岐で、下記のようsetTransにしましたが、ダメでした。
Java
1 public void setTranst(){ 2 3 4 SeekBar seekBar = findViewById(R.id.SeekBar); 5 seekBar.setMax(100); 6 seekBar.setProgress(0); 7 seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 8 // トラッキング開始時に呼び出す 9 @Override 10 public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 11 if(seekBar.getProgress() == 0-10 ) { 12 updateTileOverlayTransparency(0.0f); 13 }else if(seekBar.getProgress() == 11-20 ){ 14 updateTileOverlayTransparency(0.1f); 15 }else if(seekBar.getProgress() == 21-30 ){ 16 updateTileOverlayTransparency(0.2f); 17 }else if(seekBar.getProgress() == 31-40 ){ 18 updateTileOverlayTransparency(0.3f); 19 }else if(seekBar.getProgress() == 41-50 ){ 20 updateTileOverlayTransparency(0.4f); 21 }else if(seekBar.getProgress() == 51-60 ){ 22 updateTileOverlayTransparency(0.5f); 23 }else if(seekBar.getProgress() == 61-70 ){ 24 updateTileOverlayTransparency(0.6f); 25 }else if(seekBar.getProgress() == 71-80 ){ 26 updateTileOverlayTransparency(0.7f); 27 }else if(seekBar.getProgress() == 81-90 ){ 28 updateTileOverlayTransparency(0.8f); 29 }else if(seekBar.getProgress() == 91-100 ){ 30 updateTileOverlayTransparency(0.9f); 31 } 32 33// String s = String.format(java.util.Locale.US,"%d %%",progress); 34// textView.setText(s); 35 } 36 // トラッキング中に呼び出す 37 @Override 38 public void onStartTrackingTouch(SeekBar seekBar) { 39 40 } 41 // トラッキング終了時に呼び出す 42 @Override 43 public void onStopTrackingTouch(SeekBar seekBar) { 44 45 } 46 }); 47 48 } 49
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。