2013年6月17日月曜日

Google Maps Android API v2 のマップ上にTextViewでテキストを表示する


マップ表示するだけだとちょっとあれなので、なんかテキスト表示したくなった。

やりかた

まずは表示するTextViewを持つレイアウトファイルを作成
map_overlay.xml

    
 


そしてMapFragment継承してマップ表示するフラグメント作成
onResumeでレイアウトViewをActivityに追加する。
MyMapFragment.java
public class MyMapFragment extends MapFragment {
    private GoogleMap mMap;
    private View mLayout;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View root = super.onCreateView(inflater, container, savedInstanceState);
        return root;
    }
 
    @Override
    public void onResume()
    {
        super.onResume();

        //マップにレイアウトを上かぶせ
        if(mLayout==null){
            //新規はレイアウトファイルからインスタンス化
            mLayout = getActivity().getLayoutInflater().inflate(R.layout.map_overlay, null);
        }else{
            //すでにある場合もそのままではなぜか表示されないので、一旦削除
            ((ViewGroup)mLayout.getParent()).removeView(mLayout);
        }
        getActivity().addContentView(mLayout, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
 TextView textView = (TextView)mLayout.findViewById(R.id.textView);
 textView.setText("てすと");
    }
}

はまったこと

なぜかタブを切替してまた戻すとテキストが消えてしまう。
なので、一旦Viewを削除してまた追加するようにしたら消えなくなった。
むずかし



スポンサーリンク

Related Posts Plugin for WordPress, Blogger...