如何阻止标记在Android上闪烁

如何阻止标记在Android上闪烁,android,google-maps,Android,Google Maps,在我的应用程序中,我动态跟踪18个人,它工作正常没有问题,但有时标记开始闪烁,只有黑色的一个驱动程序标记和一个会员制造商不闪烁,这是标记的第一行 我的代码在这里` lat lng速度参数与驾驶员有关 和gpsLatLng.1,2,3。。。等等都是会员 我想我在marker options做了很多数学题,这可能是y private void gotoLocation(double lat , double lng ,double speed){ //LatLng ll = new LatL

在我的应用程序中,我动态跟踪18个人,它工作正常没有问题,但有时标记开始闪烁,只有黑色的一个驱动程序标记和一个会员制造商不闪烁,这是标记的第一行 我的代码在这里` lat lng速度参数与驾驶员有关 和gpsLatLng.1,2,3。。。等等都是会员 我想我在marker options做了很多数学题,这可能是y

private void gotoLocation(double lat , double lng ,double speed){
    //LatLng ll = new LatLng(lat, lng);
    //CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
    //mMap.animateCamera(update);
    SessionManager sm =new SessionManager(getApplicationContext());

    HashMap<String, String> user = sm.getUserDetails();
    final String m_type = user.get(SessionManager.KEY_TYPE);


    if(Integer.parseInt(m_type)!=1){
if(d_marker!=null){
        d_marker.remove();
}

    }else{
        //if not
        setMarker_driver(gpsLatLng.d_name, lat, lng,speed);

    }

    if(gpsLatLng.m1_lat!=0.0){
        setMarker_m1(gpsLatLng.m1_name,gpsLatLng.m1_lat, gpsLatLng.m1_lng,gpsLatLng.m1_speed);
    }

    if(gpsLatLng.m2_lat!=0.0){
        setMarker_m2(gpsLatLng.m2_name,gpsLatLng.m2_lat, gpsLatLng.m2_lng,gpsLatLng.m2_speed);
    }
    if(gpsLatLng.m3_lat!=0.0){
        setMarker_m3(gpsLatLng.m3_name,gpsLatLng.m3_lat, gpsLatLng.m3_lng,gpsLatLng.m3_speed);
    }
    if(gpsLatLng.m4_lat!=0.0){
        setMarker_m4(gpsLatLng.m4_name,gpsLatLng.m4_lat, gpsLatLng.m4_lng,gpsLatLng.m4_speed);
    }
    if(gpsLatLng.m5_lat!=0.0){
        setMarker_m5(gpsLatLng.m5_name,gpsLatLng.m5_lat, gpsLatLng.m5_lng,gpsLatLng.m5_speed);
    }
    if(gpsLatLng.m6_lat!=0.0){
        setMarker_m6(gpsLatLng.m6_name,gpsLatLng.m6_lat, gpsLatLng.m6_lng,gpsLatLng.m6_speed);
    }
    if(gpsLatLng.m7_lat!=0.0){
        setMarker_m7(gpsLatLng.m7_name,gpsLatLng.m7_lat, gpsLatLng.m7_lng,gpsLatLng.m7_speed);
    }
    if(gpsLatLng.m8_lat!=0.0){
        setMarker_m8(gpsLatLng.m8_name,gpsLatLng.m8_lat, gpsLatLng.m8_lng,gpsLatLng.m8_speed);
    }
    if(gpsLatLng.m9_lat!=0.0){
        setMarker_m9(gpsLatLng.m9_name,gpsLatLng.m9_lat, gpsLatLng.m9_lng,gpsLatLng.m9_speed);
    }
    if(gpsLatLng.m10_lat!=0.0){
        setMarker_m10(gpsLatLng.m10_name,gpsLatLng.m10_lat, gpsLatLng.m10_lng,gpsLatLng.m10_speed);
    }
    if(gpsLatLng.m11_lat!=0.0){
        setMarker_m11(gpsLatLng.m11_name,gpsLatLng.m11_lat, gpsLatLng.m11_lng,gpsLatLng.m11_speed);
    }
    if(gpsLatLng.m12_lat!=0.0){
        setMarker_m12(gpsLatLng.m12_name,gpsLatLng.m12_lat, gpsLatLng.m12_lng,gpsLatLng.m12_speed);
    }
    if(gpsLatLng.m13_lat!=0.0){
        setMarker_m13(gpsLatLng.m13_name,gpsLatLng.m13_lat, gpsLatLng.m13_lng,gpsLatLng.m13_speed);
    }
    if(gpsLatLng.m14_lat!=0.0){
        setMarker_m14(gpsLatLng.m14_name,gpsLatLng.m14_lat, gpsLatLng.m14_lng,gpsLatLng.m14_speed);
    }
    if(gpsLatLng.m15_lat!=0.0){
        setMarker_m15(gpsLatLng.m15_name,gpsLatLng.m15_lat, gpsLatLng.m15_lng,gpsLatLng.m15_speed);
    }
    if(gpsLatLng.m16_lat!=0.0){
        setMarker_m16(gpsLatLng.m16_name,gpsLatLng.m16_lat, gpsLatLng.m16_lng,gpsLatLng.m16_speed);
    }




}
/*private void gotoCurrentLocation(){

    Location currentLocation = LocationServices.FusedLocationApi.getLastLocation(
            mGoogleApiClient);
    if(currentLocation == null){
        Toast.makeText(getApplicationContext(), "location is not aviable", Toast.LENGTH_LONG).show();
        marker=null;
    }else{
        LatLng ll = new LatLng((currentLocation).getLatitude(),(currentLocation).getLongitude());
        CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, Zoom);
        mMap.animateCamera(update);
        if (marker != null) {
            marker.remove();
        }
            setMarker(TITLE, ll.latitude, ll.longitude);
         //option1 = new MarkerOptions().title("me").position(ll);
        //marker = mMap.addMarker(option1);

        // i got my point right here brotherssss just add the makerx of our van which will update in 5 seconds
    }
}*/


private void setMarker_m1(String locality, double lat, double lng,double speed) {


    if(m1!= null){
        m1.remove();

    }
    MarkerOptions options = Moptions(locality, lat,  lng, speed);
    m1 = mMap.addMarker(options);



}
private void setMarker_m2(String locality, double lat, double lng,double speed) {


    if(m2!= null){
        m2.remove();

    }
    MarkerOptions options = Moptions(locality, lat,  lng, speed);
    m2 = mMap.addMarker(options);



}
private void setMarker_m3(String locality, double lat, double lng,double speed) {


    if(m3!= null){
        m3.remove();

    }
    MarkerOptions options = Moptions(locality, lat,  lng, speed);
    m3 = mMap.addMarker(options);



}
private void setMarker_m4(String locality, double lat, double lng,double speed) {


    if(m4!= null){
        m4.remove();

    }
    MarkerOptions options = Moptions(locality, lat,  lng, speed);
    m4 = mMap.addMarker(options);



}
private void setMarker_m5(String locality, double lat, double lng,double speed) {


    if(m5!= null){
        m5.remove();

    }
    MarkerOptions options = Moptions(locality, lat,  lng, speed);
    m5 = mMap.addMarker(options);



}
private void setMarker_m6(String locality, double lat, double lng,double speed) {


    if(m6!= null){
        m6.remove();

    }
    MarkerOptions options = Moptions(locality, lat,  lng, speed);
    m6 = mMap.addMarker(options);



}
private void setMarker_m7(String locality, double lat, double lng,double speed) {


    if(m7!= null){
        m7.remove();

    }
    MarkerOptions options = Moptions(locality, lat,  lng, speed);
    m7 = mMap.addMarker(options);



}
private void setMarker_m8(String locality, double lat, double lng,double speed) {


    if(m8!= null){
        m8.remove();

    }
    MarkerOptions options = Moptions(locality, lat,  lng, speed);
    m8 = mMap.addMarker(options);



}
private void setMarker_m9(String locality, double lat, double lng,double speed) {


    if(m9!= null){
        m9.remove();

    }
    MarkerOptions options = Moptions(locality, lat,  lng, speed);
    m9 = mMap.addMarker(options);



}
专用空位设置标记器_m11(管柱位置、双lat、双lng、双速度){

} 专用空隙设置标记器_m12(管柱位置、双纬度、双液化天然气、双速度){

} 专用无效设置标记器_m13(管柱位置、双lat、双lng、双速度){

} 专用空隙设置标记器_m14(管柱位置、双lat、双lng、双速度){

} 专用无效设置标记器_m15(管柱位置、双lat、双lng、双速度){

} 专用空隙设置标记器_m16(管柱位置、双lat、双lng、双速度){

} 专用void设置标记器_驱动器(字符串位置、双lat、双lng、双速){

专用标记选项(字符串位置、双lat、双lng、双速度){ Location targetLocation=新位置(“”;//不需要提供程序名称 targetLocation.setLatitude(lat);//当然是您的坐标//+“公里,时间:”+时间 targetLocation.设置经度(lng); 双倍距离=0; 双倍时间; 试一试{ 距离=我的位置。距离到(目标位置)/1000; 速度=速度*3600/1000; 时间=距离/速度; 时间=时间/60; 时间=数学地板(时间*100)/100; 距离=数学楼层(距离*100)/100; 速度=数学地板(速度*100)/100; }捕获(例外e){


`
开关
if(…){…}else{…}
不同。您只能在
案例
中使用
=
。您必须执行以下操作:

int length = array.length;
switch (length) {
    case 0:
    case 1:
    case 2:
    [...]
    case 11:
        // your code here
        break;
    //other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
    case 0:  // 11 or under
    break;
    case 1:  // 12 to 20
    break;
    case 2:  // 21 or more
    break;
}
请注意缺少的
break
-语句,它们非常重要。
我建议您提供更多详细信息。

开关
if(…){…}else{…}
不同。您只能在
案例
中使用
==
。您必须执行以下操作:

int length = array.length;
switch (length) {
    case 0:
    case 1:
    case 2:
    [...]
    case 11:
        // your code here
        break;
    //other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
    case 0:  // 11 or under
    break;
    case 1:  // 12 to 20
    break;
    case 2:  // 21 or more
    break;
}
请注意缺少的
break
-语句,它们非常重要。
我建议您提供更多详细信息。

开关
if(…){…}else{…}
不同。您只能在
案例
中使用
==
。您必须执行以下操作:

int length = array.length;
switch (length) {
    case 0:
    case 1:
    case 2:
    [...]
    case 11:
        // your code here
        break;
    //other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
    case 0:  // 11 or under
    break;
    case 1:  // 12 to 20
    break;
    case 2:  // 21 or more
    break;
}
请注意缺少的
break
-语句,它们非常重要。
我建议您提供更多详细信息。

开关
if(…){…}else{…}
不同。您只能在
案例
中使用
==
。您必须执行以下操作:

int length = array.length;
switch (length) {
    case 0:
    case 1:
    case 2:
    [...]
    case 11:
        // your code here
        break;
    //other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
    case 0:  // 11 or under
    break;
    case 1:  // 12 to 20
    break;
    case 2:  // 21 or more
    break;
}
请注意缺少的
break
-语句,它们非常重要。
我建议您提供更多详细信息。

您不能。
开关
只能测试精确值

你可以做:

switch(array.length) {
case 0: case 1: case 2: case 3:
case 4: case 5: case 6: case 7:
case 8: case 9: case 10: case 11:
    // do stuff
    break;
default:
    break;
}

但是为什么要这样做?是什么让你觉得它更快?

你不能。开关只能测试精确的值

你可以做:

switch(array.length) {
case 0: case 1: case 2: case 3:
case 4: case 5: case 6: case 7:
case 8: case 9: case 10: case 11:
    // do stuff
    break;
default:
    break;
}

但是为什么要这样做?是什么让你觉得它更快?

你不能。开关只能测试精确的值

你可以做:

switch(array.length) {
case 0: case 1: case 2: case 3:
case 4: case 5: case 6: case 7:
case 8: case 9: case 10: case 11:
    // do stuff
    break;
default:
    break;
}

但是为什么要这样做?是什么让你觉得它更快?

你不能。开关只能测试精确的值

你可以做:

switch(array.length) {
case 0: case 1: case 2: case 3:
case 4: case 5: case 6: case 7:
case 8: case 9: case 10: case 11:
    // do stuff
    break;
default:
    break;
}

但是你为什么要这样做?是什么让你觉得它更快呢?

你不能使用
开关(根据你的例子)这样做。因为
大小写的值是常量表达式(
大小写*值*
)。

你不能这样做(根据你的例子)使用
switch
。由于
case
的值是常量表达式(
case*value*
)。

使用
switch
,您不能这样做(根据您的示例)。因为
case
的值是常量表达式(
case*value*
)。

您不能这样做(根据您的示例)使用
switch
。由于
case
的值是常量表达式(
case*value*
)。

switch
语句通过精确匹配而不是像
if
那样的比较来操作。您可以通过引入如下新变量来实现:

int length = array.length;
switch (length) {
    case 0:
    case 1:
    case 2:
    [...]
    case 11:
        // your code here
        break;
    //other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
    case 0:  // 11 or under
    break;
    case 1:  // 12 to 20
    break;
    case 2:  // 21 or more
    break;
}

int-value=(array.length
Switch
语句通过精确匹配操作,而不是像
if
那样通过比较操作。您可以通过引入如下新变量来完成所需操作:

int length = array.length;
switch (length) {
    case 0:
    case 1:
    case 2:
    [...]
    case 11:
        // your code here
        break;
    //other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
    case 0:  // 11 or under
    break;
    case 1:  // 12 to 20
    break;
    case 2:  // 21 or more
    break;
}

int-value=(array.length
Switch
语句通过精确匹配操作,而不是像
if
那样通过比较操作。您可以通过引入如下新变量来完成所需操作:

int length = array.length;
switch (length) {
    case 0:
    case 1:
    case 2:
    [...]
    case 11:
        // your code here
        break;
    //other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
    case 0:  // 11 or under
    break;
    case 1:  // 12 to 20
    break;
    case 2:  // 21 or more
    break;
}

int-value=(array.length
Switch
语句通过精确匹配操作,而不是像
if
那样通过比较操作。您可以通过引入如下新变量来完成所需操作:

int length = array.length;
switch (length) {
    case 0:
    case 1:
    case 2:
    [...]
    case 11:
        // your code here
        break;
    //other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
    case 0:  // 11 or under
    break;
    case 1:  // 12 to 20
    break;
    case 2:  // 21 or more
    break;
}

int-value=(array.length在if/elseif中,
if(array.length在if/elseif中,
if(array.length在if/elseif中,
if(array.length在if/elseif中,
if(array.length)在if/elseif中,
if(array.length)这个答案很聪明这个答案很聪明