SeekBarでは、スライド以外にも
タップで、progressの変更ができるのですが
タップの操作をさせないようにし、スライド操作だけさせるようにしたいです。
上記を参考にしようとしたのですが、
AndroidどころかJava自体も始めて3週間くらいしか経たない、初心者なので
どのコードも、よく理解ができませんでした。
また、本来やりたいことは、
以前私が質問した、https://teratail.com/questions/141687
こちらです。
自己解決したのですが、これだと、
Progressの49, 51をタップで飛ばした場合、レイヤが切り替わりません。
そこでSeekBarのスライドだけで、必ず、51,49を通過するようにし、レイヤを切り替えさせたいです。
本来なら、Layerを、前に設定されたものと比較して
下記のようにするのがベストだと思いますが、
なかなか、参考になりそうなものも出てこなく
レイヤの情報を取得できそうなメソッドもなかったので。。。
SeekBarのタップでのprogressを無効にしたいと思いました。
Java
1if (LayerA was already set){ 2 ・透過機能だけ 3}else{ 4 ・remove Layer B 5 ・set Layer A 6 ・透過機能 7}
以下が私のコードです。
Java
1public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 2 if(mTileOverlay != null && seekBar.getProgress() > 50) { 3 4 if(seekBar.getProgress() == 51){ 5 mTileOverlay.remove(); //remove Layer B 6 setupOverlayLayersA(_mMap); //set Layer A 7 } 8 9 mTileOverlay.setTransparency(1.0f - ((float) progress - 50f) / 50f); 10 11 12 }else if (seekBar.getProgress() == 50) { 13 14 mTileOverlay.setTransparency(1.0f); 15 16 }else if(seekBar.getProgress() < 50){ 17 18 if(seekBar.getProgress() == 49){ 19 mTileOverlay.remove(); //remove Layer B 20 setupOverlayLayersB(_mMap); //set Layer B 21 } 22 23 mTileOverlay.setTransparency((float) progress / (float) 50); 24 25 } 26 }
SeekBarのスライドだけにするにはどうしたら良いでしょうか?
または、前にsetしたレイヤの情報を取得するには、どうしたら良いでしょうか?
*補足します。
daisuke7さんの実装方法にとても感動したので、補足しました。
下記のコメントも読んでいただけますと、今後のお役に立てるかもしれません!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/17 09:26
2018/08/17 09:28
退会済みユーザー
2018/08/17 09:50
2018/08/17 09:54
退会済みユーザー
2018/08/17 10:03 編集
2018/08/17 10:04
退会済みユーザー
2018/08/17 10:07 編集
2018/08/17 10:07
退会済みユーザー
2018/08/17 10:09 編集
2018/08/17 10:15
退会済みユーザー
2018/08/17 10:15
退会済みユーザー
2018/08/17 10:19 編集
2018/08/17 10:20
退会済みユーザー
2018/08/17 10:23 編集
2018/08/17 10:22
退会済みユーザー
2018/08/17 10:24