android – 将ActionBarSherlock与Google Maps API V2一起使用

android – 将ActionBarSherlock与Google Maps API V2一起使用,第1张

概述我想将ActionBarSherlock与Google map API V2一起使用.我在 here读过一个解决方案. 但是当扩展我的主ActionBarSherlock类时,它缺少了很多用于menthod的lib(比如:findViewById,getSupportActionBar ..) 这是我的ActionBarSherlock public class FeatureToggles ex 我想将ActionbarSherlock与Google map API V2一起使用.我在 here读过一个解决方案.
但是当扩展我的主ActionbarSherlock类时,它缺少了很多用于menthod的lib(比如:findVIEwByID,getSupportActionbar ..)

这是我的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){        set@R_419_5969@(R.style.@R_419_5969@_Sherlock); // Used for @R_419_5969@ 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().get@R_419_5969@dContext();        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){    }}
解决方法 以下是我使用完整屏幕地图的方法(请注意,在您的选项卡中的片段内使用GoogleMap API V2会在您滑动时添加一些令人难以置信的黑色边距,这是一个API问题所以……):

地图片段的布局:

<?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"     />

地图的一个类(可以用来做一些纠正API错误的东西……)

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;    }}

FragmentActivity(或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();}

没有动画的简单过渡:

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

现在为清单工作:

OpenGLES2:

<uses-feature        androID:glEsversion="0x00020000"        androID:required="true" />

一些权限:

<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密钥:

<Meta-data            androID:name="com.Google.androID.maps.v2.API_KEY"            androID:value="HERE_THE_KEY" />

你的MapActivity:

<activity    androID:name=".ActivityGoogleMap"    androID:configChanges="orIEntation"    androID:label="@string/app_name" ></activity>

希望它会有所帮助祝好运

总结

以上是内存溢出为你收集整理的android – 将ActionBarSherlock与Google Maps API V2一起使用全部内容,希望文章能够帮你解决android – 将ActionBarSherlock与Google Maps API V2一起使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1140981.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存