2015-08-15 28 views
7

里面有滚动型 它可以在许多设备上的Android谷歌地图V2,但显示了一些设备 API KEY是正确灰瓦,Android的谷歌地图内滚动型V2显示某些设备上的灰瓦

要使用内滚动型谷歌地图V2应该使用自定义类扩展SupportMapFragment,像这样:

public class WorkaroundMapFragment extends SupportMapFragment { 
    private OnTouchListener mListener; 

    @Override 
    public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle savedInstance) { 
     View layout = super.onCreateView(layoutInflater, viewGroup, savedInstance); 

     TouchableWrapper frameLayout = new TouchableWrapper(getActivity()); 

     frameLayout.setBackgroundColor(getResources().getColor(android.R.color.transparent)); 

     ((ViewGroup) layout).addView(frameLayout, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 

     return layout; 
    } 

    public void setListener(OnTouchListener listener) { 
     mListener = listener; 
    } 

    public interface OnTouchListener { 
     public abstract void onTouch(); 
    } 

    public class TouchableWrapper extends FrameLayout { 

     public TouchableWrapper(Context context) { 
      super(context); 
     } 

     @Override 
     public boolean dispatchTouchEvent(MotionEvent event) { 
      switch (event.getAction()) { 
       case MotionEvent.ACTION_DOWN: 
        mListener.onTouch(); 
        break; 
       case MotionEvent.ACTION_UP: 
        mListener.onTouch(); 
        break; 
      } 
      return super.dispatchTouchEvent(event); 
     } 
    } 
} 

,还可以设置:

((WorkaroundMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).setListener(new WorkaroundMapFragment.OnTouchListener() { 
      @Override 
      public void onTouch() { 
       mScrollViewDa.requestDisallowInterceptTouchEvent(true); 
      } 
     }); 

图像波纹管的用户拍摄的,Android版本4.2.2设备三星大2

应用程序测试的:三星Galaxy Tab 2 10.1" :4.0。 3华硕Fonepad 7" 片剂:5.0.1工作良好

android:minSdkVersion="10" 

enter image description here

+0

您确定您在此设备上连接了互联网吗? –

+0

是的,客户告诉我谷歌地图在其他应用程序上运行良好,所以不适合我 – AndroSco

+0

应该有该设备的logcat说什么(至少在警告过滤模式)。 你可以看到谷歌的标志,所以我很确定它可以和Keys一起使用。 可以肯定的是:同一个国家,连接好,三星Grand 2有OpenGL2的支持和正常工作(游戏等没有问题)? –

回答

1

对于类似的问题,我采取了不同的方法。

是的,你是对的,你不能有一个地图直接进入ScrollView ......但你可以有一个FrameLayout并在运行时用地图代替它。就像这样:

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginTop="-100dp" 
    android:layout_marginBottom="-100dp" 
    android:id="@+id/mapViewDetail" 
    android:scaleType="centerCrop" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_above="@+id/bottom_layout" 
    tools:context="com.yourpackage.app.HomeActivity" 
    tools:ignore="MergeRootFrame" /> 

然后我创建了一个自定义地图,因为我需要一些“调整”(你能避免这一步,如果你是罚款默认地图):

public abstract class MiniMapFragment extends MapFragment { 

    @Override 
    public View onCreateView(LayoutInflater arg0, ViewGroup arg1, Bundle arg2) { 
     View v = super.onCreateView(arg0, arg1, arg2); 
     initMap(); 
     return v; 
    } 

    public abstract void initMap(); 
} 

然后,在我刚刚添加的片段:

MiniMapFragment mMapFragment = new MiniMapFragment() { 
     @Override 
     public void initMap() { 
      googleMap = getMap(); 
      getMap().getUiSettings().setMyLocationButtonEnabled(false); 
      getMap().getUiSettings().setZoomControlsEnabled(false); 
      getMap().getUiSettings().setScrollGesturesEnabled(false); 
     } 
    }; 

    FragmentTransaction fragmentTransaction = 
      getFragmentManager().beginTransaction(); 
    fragmentTransaction.add(R.id.mapViewDetail, mMapFragment); 
    fragmentTransaction.commit(); 
    getFragmentManager().executePendingTransactions(); 

    MapsInitializer.initialize(this); 

而且你应该没问题。

+0

触摸不是我的问题,这是灰色的瓷砖,直到变焦按钮加载 – AndroSco

+0

所以,只使用评论的上半部分;) – Filnik

+0

用户通过触摸选择位置,我不能禁用它 – AndroSco

1

我不完全确定这是否会回答您的问题,但值得深入调查。

从您的问题和意见,它似乎是在伊朗的用户在一个特定的设备上,正在接收灰色地图。由于我不确定用户的确切位置,我已经对Google地图在伊朗及周边地区的可访问性进行了一些研究。
该用户可能试图找到有意变灰的地图。

Satellite map images with missing or unclear data

不是所有的东西都显示在谷歌地图。

Blurred Out: 51 Things You Aren't Allowed to See on Google Maps

有问题,几年前与伊朗和伊朗使用谷歌希望建立一个伊斯兰地球地图的消费者。

Iran plans 'Islamic Google Earth'

然而,这似乎已经能够访问谷歌地图在这一领域的人解决。

这也是美国在伊朗附近的军事基地的地图。其中有很多,并且至少可能会模糊,如果不变成灰色。

American Military Bases Near Iran

而且在邻国伊拉克,也有过时的空中镜头的问题。

when Iraq will get new satellite imagery update

此外,伊朗的互联网审查政策和使用“智能过滤”

Iran expands 'smart' Internet censorship我不知道这是否会影响到一些地区的访问谷歌地图。

我会建议询问用户的具体位置,或询问地图是否出现在某些地方而不是其他地方。

希望这会有所帮助。

编辑

Galaxy Grand Duos (GT-I9082)最近才更新到4.2.2。

multiple issues with the jelly bean update for the Samsung Grand 2

如果你的用户最近升级了他的手机,它可能是值得的检查到这一点。
尽管以下链接并非特定于Google地图,但它仍然有用。 Samsung Galaxy Grand: Slow Performance after JB 4.2.2 upgrade.

除了调查特定设备和我之前提到的任何问题之外,在这个阶段我可以为您提供的其他东西不多。

+0

其他应用程序也使用地图,我的App运行良好对我而言,不在城市的客户 – AndroSco

+0

@HK是的,我看到了,但我也认为它可能是数据模拟提供商。这很奇怪,听起来像是网络问题或手机问题。 我想了解,其他应用程序也使用地图,我的应用程序对我有用,但对客户不适用。我不清楚,这意味着什么。如果我们能耐心等待。 –

+0

我有一个应用程序,我用得很好,Google的地图加载在我的应用程序中,我在伊朗的德黑兰城,但我的客户无法在我的应用程序中查看Google地图,他在Yazd另一个城市伊朗。注意:他可以在其他应用程序中查看谷歌地图,你能帮助我吗? – AndroSco

相关问题