5

Bir Google map API V2 ile ActionBarSherlock kullanmak istiyorum. here'da bir çözüm okudum. benim ana ActionBarSherlock sınıfını genişleten zaman Ama, menthod için çok lib eksik (örn: findViewById, getSupportActionBar ..)Google harita API ile ActionBarSherlock kullanın API V2

bu İşte tam ekran harita ile yaklaşımım (benim ActionBarSherlock

public class FeatureToggles extends SherlockMapFragment { 
    private static final Random RANDOM = new Random(); 
    private int       items  = 0; 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu){ 
     for(int i = 0; i < items; i++) { 
      menu.add("Text").setIcon(R.drawable.ic_title_share_default).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
     } 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     setTheme(R.style.Theme_Sherlock); // Used for theme switching in samples 
     requestWindowFeature(Window.FEATURE_PROGRESS); 
     requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.feature_toggles); 
     setSupportProgressBarIndeterminateVisibility(false); 
     setSupportProgressBarVisibility(false); 
     getSupportActionBar().setCustomView(R.layout.custom_view); 
     getSupportActionBar().setDisplayShowCustomEnabled(false); 
     Context context = getSupportActionBar().getThemedContext(); 
     ArrayAdapter<CharSequence> listAdapter = ArrayAdapter.createFromResource(context, R.array.locations, R.layout.sherlock_spinner_item); 
     listAdapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item); 
     getSupportActionBar().setListNavigationCallbacks(listAdapter, null); 



//  if (savedInstanceState == null) { 
//   // Do first time initialization -- add initial fragment. 
//   Fragment newFragment = CountingFragment.newInstance(mStackLevel); 
//   FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
//   ft.add(R.id.simple_fragment, newFragment).commit(); 
//  } else { 
//   mStackLevel = savedInstanceState.getInt("level"); 
//  } 
//  
//  findViewById(R.id.new_fragment).setOnClickListener(new View.OnClickListener() { 
//   public void onClick(View v){ 
//    addFragmentToStack(); 
//   } 
//  });  
     findViewById(R.id.btnMap).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       Intent i = new Intent(getApplicationContext(), GoogleActivityV2.class); 
       startActivity(i); 
      } 
     });  
     findViewById(R.id.display_progress_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       setSupportProgressBarVisibility(true); 
       setSupportProgressBarIndeterminateVisibility(false); 
       setSupportProgress(RANDOM.nextInt(8000) + 10); 
      } 
     }); 
     findViewById(R.id.display_progress_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       setSupportProgressBarVisibility(false); 
      } 
     }); 
     findViewById(R.id.display_iprogress_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       // Hack to hide the regular progress bar 
       setSupportProgress(Window.PROGRESS_END); 
       setSupportProgressBarIndeterminateVisibility(true); 
      } 
     }); 
     findViewById(R.id.display_iprogress_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       setSupportProgressBarIndeterminateVisibility(false); 
      } 
     }); 
     findViewById(R.id.display_items_clear).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       items = 0; 
       invalidateOptionsMenu(); 
      } 
     }); 
     findViewById(R.id.display_items_add).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       items += 1; 
       invalidateOptionsMenu(); 
      } 
     }); 
     findViewById(R.id.display_subtitle_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setSubtitle("The quick brown fox jumps over the lazy dog."); 
      } 
     }); 
     findViewById(R.id.display_subtitle_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setSubtitle(null); 
      } 
     }); 
     findViewById(R.id.display_title_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowTitleEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_title_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowTitleEnabled(false); 
      } 
     }); 
     findViewById(R.id.display_custom_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowCustomEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_custom_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowCustomEnabled(false); 
      } 
     }); 
     findViewById(R.id.navigation_standard).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
      } 
     }); 
     findViewById(R.id.navigation_list).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
      } 
     }); 
     findViewById(R.id.navigation_tabs).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
      } 
     }); 
     findViewById(R.id.display_home_as_up_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_home_as_up_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
      } 
     }); 
     findViewById(R.id.display_logo_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayUseLogoEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_logo_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayUseLogoEnabled(false); 
      } 
     }); 
     findViewById(R.id.display_home_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowHomeEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_home_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowHomeEnabled(false); 
      } 
     }); 
     findViewById(R.id.display_actionbar_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().show(); 
      } 
     }); 
     findViewById(R.id.display_actionbar_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().hide(); 
      } 
     }); 


    } 

    public void onTabSelected(Tab tab, FragmentTransaction transaction){ 
    } 

    public void onTabUnselected(Tab tab, FragmentTransaction transaction){ 
    } 

    public void onTabReselected(Tab tab, FragmentTransaction transaction){ 
    } 
} 
+1

SherlockFragmentActivity öğesini genişletmek ve programınızı haritadan oluşturmak için daha iyi bir yol olabilir. Google oyun hizmetleri harita örnekleri ile birlikte gelen ProgrammaticDemoActivity örneğini inceleyin. Bu yüzden api v2 haritalarını actionbarsherlock ile kullanıyorum. –

+0

@sliver_man Cevabınız için teşekkürler, bunu deneyeceğim :) – Dolphin

+0

@Dolphin Silver_man'ın yaklaşımı sizin için işe yarıyor mu? –

cevap

3

olduğunu) ... Eğer tokatlamak zaman senin bir Tab içinde fragmanında GoogleMap API V2 kullanarak ABS bazı awefull siyah marjı katacak unutmayın ve bu yüzden bir API konu:

harita parçası için bir düzen:

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    class="com.package.TransparentSupportMapFragment" /> 

harita için A sınıfı (yani API hataları düzeltme gibi bazı şeyler yapmak için yararlı olabilir ..)

public class TransparentSupportMapFragment extends SupportMapFragment { 
    public TransparentSupportMapFragment() { 

     super(); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup view, Bundle savedInstance) { 

     View layout = super.onCreateView(inflater, view, savedInstance); 
     FrameLayout frameLayout = new FrameLayout(getActivity()); 
     frameLayout.setBackgroundColor(getResources().getColor(android.R.color.transparent)); 
     ((ViewGroup) layout).addView(frameLayout, new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
     return layout; 
    } 
} 

A FragmentActivity (veya SherlockFragmentActivity)

public class ActivityGoogleMap extends SherlockFragmentActivity{ 

    GoogleMap _googleMap; 

    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 

     // abs 
     ActionBar bar = getSupportActionBar(); 
     bar.setTitle(R.string.tle_abs); 
     bar.setDisplayHomeAsUpEnabled(true); 

     // map 
     _googleMap = ((TransparentSupportMapFragment) getSupportFragmentManager().findFragmentById((R.id.map))).getMap(); 
} 

animasyon olmadan basit bir geçiş: Manifest iş için Şimdi

Intent intent = new Intent(this, ActivityGoogleMap.class); 
startActivity(intent); 

:

OpenGLES2:

<uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 

Bazı izinleri: Uygulama

 <permission 
     android:name="com.egdigital.appetablissement.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<!-- GPS LOCATION --> 
    <uses-permission android:name="android.permission.ACCESS_GPS" /> 
    <uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" /> 
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

API anahtarınız:

<meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="HERE_THE_KEY" /> 

Sizin MapActivity:

<activity 
    android:name=".ActivityGoogleMap" 
    android:configChanges="orientation" 
    android:label="@string/app_name" > 
</activity> 

it Umut yardımcı olur

İlgili konular