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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Java

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

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Google マップ

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

Q&A

解決済

1回答

1845閲覧

google maps にオーバーレイして、seekbarで透過度を調整

退会済みユーザー

退会済みユーザー

総合スコア0

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Java

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

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Google マップ

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

0グッド

0クリップ

投稿2018/08/01 08:12

前提・実現したいこと

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

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

updateTileOverlayTransparencyを削除し、
onProgressChangedの中に下記の記述をすると、うまくできました。

java

1if (tileOverlay != null) { 2 tileOverlay.setTransparency((float)progress /(float)TRANSPARENCY_MAX); 3}

投稿2018/08/01 09:57

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問