カメラ画面から元のMap画面に画面遷移させる方法は?

このQ&Aのポイント
  • 質問者は、現在地情報を表示するアプリを作成中です。カメラ画面から元のMap画面に画面遷移させたいですが、どのように実装すればよいか悩んでいます。
  • 一般的には、Activity間の画面遷移にはIntentを使用しますが、この場合はどのように実装すれば良いでしょうか?質問者は、HandlerクラスのメンバをSurfaceViewを継承したクラスで用意して、Activityに対してそのクラスを呼び出すコードを実装する方法を考えています。
  • 質問者は、初対面での質問になるため、申し訳なさを感じながらも、早急な回答をお待ちしています。プログラムコードが必要であれば、提供することができます。
回答を見る
  • ベストアンサー

画面遷移について

早速質問なんですが、今 1.ホーム画面は地図(google Map)を表示、また画面遷移用のボタンを設置してある。 2.ボタンを押すとカメラを使う画面に遷移し、そこでとりあえず写真を撮る。(ここではカメラを実行するActivityと、SurfaceView を継承したクラスを別クラスにて実装しております。) 3.取った後に勝手に画面遷移させ(元のMap画面へ)、撮った写真の緯度、経度を取得したうえで現在地情報を表示させる。→表示させる際はFacebookなどにある、ピンをMap上に表示させるような感じで、さらにその場所の住所、画像も表示させる、といったイメージです。 このような仕様のアプリを作っております。簡単に言えば、写真を撮ったら現在地の情報がわかる!といったアプリです。 ここで、カメラ画面から元のMap画面に画面遷移させたいのですが、通常Activity間の画面遷移はIntentを使用するのが一般的ですが、この場合だとどのように実装すれば可能でしょうか? 自分としてはHandlerクラスのメンバをSurfaceView を継承したクラスで用意して、Activityに対してそのクラスを呼び出すコードを実装すれば行けるのかなぁ…と考えているのですが。 初対面でいきなりの質問で誠に申し訳ございませんが、ご回答お待ちしております。 必要であればプログラムコードもお送りいたします。よろしくお願いいたします。

  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#177743
noname#177743
回答No.1

既に撮影の部分はできているのですね。そこで撮影した後、Intentで戻る処理ということですね。 Handlerがここで出てくるのがちょっとよくわからないのですが……。Handlerはマルチスレッド処理などで用いるもので、ここではあまり関係がないように思えます。 単純に戻るだけなら、Intentを作成し、putExtraで必要な情報を設定して起動するだけと思いますが。 Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("appication/sampledata"); intent.putExtra("sampledata",new SampeData()); // SampleDataを送る this.startActivity(intent); こんな感じでSampleDataを送れますから、起動したActivityのonCreateでそれを取得し利用すればいいでしょう。 Intent intent = this.getIntent(); if (intent.getAction().equals(Intent.ACTION_SEND)){ SampleData sampledata = (SampleData)intent.getSerializableExtra("sampledata"); } これで、SampleDataを受け渡せますね。SampleData内に位置情報や撮影した写真のイメージファイルのパスなどを保管して受け渡せば、必要な情報は起動したActivityで得られます。後はそれを元にマップにマーカーを追加し表示すれば良いと思います。

wirelessHide
質問者

お礼

chiiba kunさん 回答ありがとうございます。 Hanlderは関係ないんですね(笑) 失礼しました。 Intentしか画面遷移をさせる方法はないんでしょうか…? これまでに色々と画面遷移については調べてきましたが、Intentぐらいしか見たことない気がします。調べ不足かもしれませんが。 ちなみに、撮影した後に、その画像の情報から緯度、経度を取得して、元の地図画面に戻って取得情報を基に現在地を写真付きで表示させる、という仕組みをいま考えております。 このコード参考にさせていただきます。重ねてお礼申し上げます。ありがとうございました! またわからないことありましたらここで質問します!

wirelessHide
質問者

補足

朝早い時間帯でのご回答、ありがとうございました。 今回答を基に実装をしているのですが、つまずいている箇所があるので再度質問するとともに、ソースコードを添付いたします。 Mapクラス(初期画面 ここで写真と現在地を表示する) package com.example.maps2; import android.content.Intent; import android.location.LocationManager; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; import com.google.android.maps.MyLocationOverlay; public class Maps_go extends MapActivity { MyLocationOverlay myLocationOverlay; MapView mapview; MapController controller; MapView map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps_go); mapview=(MapView)findViewById(R.id.mapview); mapview.setBuiltInZoomControls(true); Button button1 = (Button)findViewById(R.id.button1); button1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent(Maps_go.this,Camera.class); startActivity(intent); // TODO 自動生成されたメソッド・スタブ } }); controller = mapview.getController(); controller.setZoom(17); myLocationOverlay = new MyLocationOverlay(getApplicationContext(),mapview); myLocationOverlay.onProviderEnabled(LocationManager.GPS_PROVIDER); myLocationOverlay.enableMyLocation(); myLocationOverlay.runOnFirstFix(new Runnable() { @Override public void run() { controller.animateTo(myLocationOverlay.getMyLocation()); // TODO 自動生成されたメソッド・スタブ } }); mapview.getOverlays().add(myLocationOverlay); mapview.invalidate(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_maps_go, menu); return true; } @Override protected boolean isRouteDisplayed() { // TODO 自動生成されたメソッド・スタブ return true; } } 全部貼れなかったので再度追記します。

関連するQ&A

  • Androidの画面遷移ができません(その2)

    前回の質問の続きです. 今度はページXXXXXから3つのボタン(AAAAA,BBBBB,CCCCCと仮定)を画面上に表示させ,ボタンに記載された通りの各ページAAAAA,BBBBB,CCCCCに画面遷移しようと考えています. AAAAA,BBBBB,CCCCCにはそれぞれ異なった画像が表示されるようにプログラミングしてあるのですが,すべてのボタンを押してもページAAAAAに画面遷移してしまい困っています. おそらくAndroidManifest.xmlの定義が間違えているのではないかと思っているのですが,どこに原因があるのでしょうか?解答よろしくお願いします. 【AndroidManifest.xml】 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sample.XXXXX" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="9" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".XXXXX" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="AAAAA"></activity> <activity android:name="BBBBB"></activity> <activity android:name="CCCCC"></activity> </application> </manifest>

  • Androidで画面遷移ができません.

    初心者ながら,Android向けにアプリを開発しています. ページXXXXXでボタンを表示させ,ページYYYYYで画像が表示されるようにしたいのですが,ページXXXXXで表示されたボタンを押すとエラーが出て強制終了となってしまいます. 画面遷移されるページ(YYYYY)には,適当な位置にタッチさせるとタッチした位置に移動する画像についてプログラミングしてあります.ページYYYYYは個別で実行すると正常に起動します. どこに原因があるのか教えてください.よろしくお願いします. ページXXXXXのソースは以下のとおりです. 【ソース】 import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.content.Intent; public class XXXXX extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b1 = (Button) findViewById(R.id.button1); b1.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent intent = new Intent(XXXXX.this, YYYYY.class); startActivity(intent); } }); } }

    • ベストアンサー
    • Java
  • JAVA(Android)複数のActivity

    Mac用Eclipseを用いてアプリを制作しております。(始めて数週間の初心者です。) Activityを2つ以上実装し、インテントで画面遷移するまでは良いのですが、画面遷移後に元のActivityの動作が停止(リセット)してしまいます。画面遷移後も元Activityをバックグラウンドで動作させる方法はありますでしょうか? 具体的には、元Activityでタイマーを使用し、使用したまま画面遷移を行い、またActivityに戻すとタイマーが0になってしまいます。 解決方法が御座いましたら回答宜しくお願い致します。

    • ベストアンサー
    • Java
  • androidの画面遷移について

    アンドロイドアプリケーションを開発しています。 アプリで以下のようにA画面から始まり3つのアクティビティを遷移するのですが A画面 → B画面 → C画面  ↑          ↓     ←  ←  ←  C画面からA画面に遷移させようとするとアプリケーションが止まってしまいます。 このとき画面は真っ黒またはA画面になり、タッチしても動作しません。 ログも停止します。 画面はすべてSurfaceViewで作っています。遷移はすべてIntentです。 Intentで同じ画面に戻るとき指定しなければ行けないことや、配慮しなければ いけないことがありましたら、教えてください。 ログも止まってしまうため、手がかりがない状態です。 これらのことが記載されているページや図書がありましたら教えていただけないでしょうか? 以上、よろしくお願いします。

  • iアプリでのクラスファイルが複数ある時の画面遷移

    一つのIApplication継承クラスファイルと複数のPanel継承クラスファイルでのコンポーネントのボタンを押した時の画面遷移はどのようにロジックを組んだらいいのでしょうか? componentActionの中に書くことはわかっているのですがそこに具体的にどう書いたらいいかがわかりません。 サンプル等でのご説明お願いいたします。

    • ベストアンサー
    • Java
  • 複数画面の画面遷移

    早速質問します。 A,B,Cの3画面があり、それぞれの画面遷移(コマンドボタン押下時)は下のコードで遷移しています。 A→Bに遷移する場合、  Me.Visible=False  B.Show vbModal  Me.Visible=Treu B→Cに遷移する場合、  Me.Visible=False  C.Show vbModal  Me.Visible=Treu このようなコードを記述したら、最終的にCの画面のみが表示されます。 問題はここからで、Cの画面を閉じると、なぜかB画面とA画面の両方が表示されてしまいます。本当であればB画面だけが出て欲しいのですが。 モーダルで起動した画面を、非表示にして再表示した場合モードレスに変わってしまうのでしょうか。また、その回避方法を教えて下さい。

  • Strutsで画面遷移させない。

    Strutsでwebアプリを作成しているのですが、jsp上のボタンを押下時、sessionに持ってる変数を書き換えたいのですが、画面遷移はさせたくないのです。それって可能ですか? どなたかご教授ください。

    • ベストアンサー
    • Java
  • eclipse-android(複数画面遷移)

    eclipseを使用してandroidアプリを作成しています。 画面遷移について ボタンを使用して3画面以上の遷移を行いたいのですが、 うまくいきません。 main->sub1とsub1->mainまでの遷移はできていますが、 main->sub1->sub2の画面遷移がどうしてもうまく行きません。 ググっても3画面以上の遷移方法がでていなく、 困っています。ご教授下さい。 javaとマニフェスト、string.xml細かく教えて下さい。

  • VBAで画面遷移時のパラメータについて

    現在EXCEL・VBAにてツールを作成しています。 そこで、遷移元画面のボタンを押下し、遷移先の画面を起動するタイミングで、 パラメータの受け渡しを行いたいのですが、どのようにコードを書いたらよろしいでしょうか? よろしくお願いいたします。

  • showModalDialogの子画面での画面遷移

    お世話になっています。 mike219といいます。 現在Webシステムの開発をStrutsで行っております。 そこで、一つ悩みにぶつかったので質問させていただきました。 行いたいことは、下記のような動きです。 (1)JavaScriptでshowModalDialogを使って子画面を開きます。 (2)showModalDialogで開かれた画面にいろいろ書き込みます。 (3)開かれている子画面内にあるボタンをクリックして  子画面内での画面遷移を行います。 といった感じです。 現在(3)で問題があり、ボタンをクリックした後、 新規でブラウザが立ち上がり遷移先の画面が表示されてしまっています^ ^; なにか子画面で遷移先の設定をしないといけないと 思うのですが、JavaScriptの知識が浅いため良く分かっていないです。 どなたか助けていただけませんか?

専門家に質問してみよう