小编Arc*_*ect的帖子

如何使相机居中,使标记位于屏幕的底部?(谷歌地图api V2 Android)

单击标记时,摄像机的默认行为是将其置于屏幕中心,但由于我通常在信息窗口中有长文本描述,因此实际更改摄像机位置以使标记位于底部时更方便屏幕(使信息窗口位于屏幕中央).我想我应该能够通过覆盖onMarkerClick函数来做到这一点(当此函数返回true时,默认行为被取消)

@Override

public boolean onMarkerClick(final Marker marker) {


    // Google sample code comment : We return false to indicate that we have not

    // consumed the event and that we wish
    // for the default behavior to occur (which is for the camera to move
    // such that the
    // marker is centered and for the marker's info window to open, if it
    // has one).

    marker.showInfoWindow();

            CameraUpdate center=
                CameraUpdateFactory.newLatLng(new LatLng(XXXX,
                                                         XXXX));
            mMap.moveCamera(center);//my question is how to get this center …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-maps

43
推荐指数
4
解决办法
3万
查看次数

用纯CSS生成随机颜色(没有javascript)?

是否可以使用纯CSS生成随机颜色而不使用javascript?这可能是不可能的,但我仍然很好奇.

css random colors css3

27
推荐指数
5
解决办法
6万
查看次数

在C#6.0之前处理NullReferenceException的好方法

我下面的代码给了我一个NullReferenceException和堆栈跟踪告诉我问题在于Count方法,所以我很确定在某个时候foo,bar或者baznull.

我的代码:

IQueryable<IGrouping<string, Referral>> queryable= ...;
var dict = queryable.ToDictionary(g => g.Key.ToString(),
                                  g => g.Count(r => r.foo.bar.baz.dummy == "Success"));
Run Code Online (Sandbox Code Playgroud)

我想知道处理null案件的简洁方法是什么.我知道在C#6.0中我可以做到foo?.bar?.baz?.dummy,但我正在研究的项目不是C#6.0

c# linq entity-framework

18
推荐指数
2
解决办法
1259
查看次数

将自定义属性添加到标记(Google Map Android API V2)

使用Google Map API V3时,我可以通过以下方式添加自定义属性:

var marker = new google.maps.Marker({
  position: userLocation,
  map: myGoogleMap,
  animation: google.maps.Animation.DROP,
  icon: avatar,
  title: userName,
  customProperty1: bla,
  customProperty2: bla,
  customProperty3: bla,
  ...
Run Code Online (Sandbox Code Playgroud)

});

我想知道我是否可以为API V2 Android做同样的事情,我想这样做的原因是每个标记的每个信息窗口都需要知道该标记的一些信息.而我正在努力实现以下render功能:

private void render(Marker marker, View view) {
        int badge = R.drawable.android_face;

        if (marker.customProperty)
        //here I need to know this property to decide which image to use        
                         badge = R.drawable.bla;

        ((ImageView) view.findViewById(R.id.badge))
                    .setImageResource(badge);

}
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-android-api-2

17
推荐指数
1
解决办法
2万
查看次数

第二次点击标记时隐藏infoWindow(Google Map Android API V2)

为了实现这一点,我觉得我只需要覆盖onMarkerClick并检查点击标记的infoWindow是否已经打开,但令我惊讶的是clickedMarker.isInfoWindowShown()总是返回false ...

我的代码:

@Override
public boolean onMarkerClick(final Marker clickedMarker) {
    if(clickedMarker.isInfoWindowShown()) {
        clickedMarker.hideInfoWindow();
        System.out.println("was showing");
    } else {
        clickedMarker.showInfoWindow();
        System.out.println("not showing");
    }
}
Run Code Online (Sandbox Code Playgroud)

它总是告诉我infoWindow"没有显示"这是不对的......我可以通过保留参考来解决这个问题,userLastClickedMarker但我想知道上面我做错了什么.

谢谢!

编辑:

我更改了代码以调试此问题:

    System.out.println(clickedMarker.isInfoWindowShown());
    if(clickedMarker.isInfoWindowShown()) {
        clickedMarker.hideInfoWindow();
        System.out.println(" showing");
    } else {
        clickedMarker.showInfoWindow();
        System.out.println("not showing");
    }
    System.out.println(clickedMarker.isInfoWindowShown());
Run Code Online (Sandbox Code Playgroud)

我发现isInfoWindowShown()在onMarkerClick方法中可以正常工作但不会正确"记住"它.而且我发现有人已经指出这是一个错误......

https://code.google.com/p/gmaps-api-issues/issues/detail?id=5408

android google-maps google-maps-android-api-2

16
推荐指数
1
解决办法
7474
查看次数

任何STL数据结构,如对,给出三个项目(类型)而不是两个?

问题1:

我正在使用C++ 11,我正在学习.我意识到我可以用两对来做到这一点:

pair<pair<<#class _T1#>, <#class _T2#>>, <#class _T3#>>
Run Code Online (Sandbox Code Playgroud)

这是最好的方式吗?

问题2:

如果我不需要不同的类型,两个项目的类型相同,使用对是浪费,那么我应该使用什么?三件物品?(同样的类型)

c++ data-structures c++11 std-pair

13
推荐指数
1
解决办法
1万
查看次数

观看所有电影算法

我遇到了这个看起来非常有趣的问题.我们想要观看所有电影,但它们仅在以下时间显示:

movieA : 15
movieB : 14, 15, 17
movieC : 15, 17
movieD : 15, 20
Run Code Online (Sandbox Code Playgroud)

我们可以看到15分,B分14分,C分17分和D分数20分,所以可以全部观看.请注意,你不能在15看C,不可行.

你猜到的问题是我们是否可以全部看到它们.

显然,我们可以通过回溯来解决它,尝试所有可能性.有更好的方法吗?我有一个想法,首先从具有最少可用时间的电影开始,这样我们可以更快地找到解决方案,如果有解决方案,最坏的情况时间复杂性仍然是相同的.

那个问题有更好的算法吗?

PS正如@gen所问,我忘了指出每部电影都是1小时,所以如果你在14:00看一部电影,你就不会错过15点的电影.谢谢你的询问.

sorting algorithm dynamic-programming greedy

9
推荐指数
1
解决办法
515
查看次数

TimeZone.getTimeZone("CST")返回GMT

我正在将时间从CST转换为当地时间,但getTimeZone似乎无法正常工作.

    String cstTime = "2013-06-21 14:00:00";

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
            "yyyy-MM-dd HH:mm:ss");
    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("CST"));

    Date date = null;
    try {
        date = simpleDateFormat.parse(cstTime);
    } catch (ParseException e) {
        System.out.println("Parse time error");
        e.printStackTrace();
    }

    TimeZone destTz = TimeZone.getDefault();//here I should get EDT on my phone
    simpleDateFormat.setTimeZone(destTz);
    String convertedLocalTime = simpleDateFormat.format(date);

    //the converted time I get is  "2013-06-21 10:00:00" 
    //but it should be             "2013-06-21 15:00:00" 
Run Code Online (Sandbox Code Playgroud)

它似乎是使用GMT而不是CST,以下是我在调试时得到的:

String abc = TimeZone.getTimeZone("CST").toString();
System.out.println("CST:"+abc);
Output:
I/System.out(19404): CST:java.util.SimpleTimeZone[id=GMT,offset=0,dstSavings=3600000,
useDaylight=fals??e,startYear=0,startMode=0,startMonth=0,startDay=0,startDayOfWeek=0,
startTime=0,en??dMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0]
Run Code Online (Sandbox Code Playgroud)

它是否使用GMT?为什么..提前致谢!

编辑:

终于通过使用它得到了它

simpleDateFormat.setTimeZone(TimeZone.getTimeZone( …
Run Code Online (Sandbox Code Playgroud)

java timezone android

8
推荐指数
1
解决办法
4万
查看次数

cout什么时候冲洗?

我知道endl或打电话flush()会冲洗它.我也知道,当你调用cincout,它刷新了.并且当程序退出时.还有其他情况会cout冲洗吗?

我刚写了一个简单的循环,我没有冲洗它,但我可以看到它被打印到屏幕上.为什么?谢谢!

for (int i =0; i<399999; i++) {

        cout<<i<<"\n";

}
Run Code Online (Sandbox Code Playgroud)

它完成的时间与endl大约7秒相同.

for (int i =0; i<399999; i++) {

        cout<<i<<endl;

}
Run Code Online (Sandbox Code Playgroud)

c++ buffer iostream cout

7
推荐指数
1
解决办法
1672
查看次数

在std :: map中为std :: array分配多个值

使用std :: array时,我可以一次分配值:

std::array<int, 3> a2 = {1, 2, 3}; 
Run Code Online (Sandbox Code Playgroud)

但是当上面的数组合并到一个地图中时,我不知道最好的方法:

using namespace std;
map <string, array<int, 3>> myMap;

//I'm doing it like below now...

array<int, 3> tempArray = {1,2,3}; // can I save this line somehow?
myMap[myString] = tempArray;
Run Code Online (Sandbox Code Playgroud)

如果这确实是正确的方法,也请告诉我.谢谢!

c++ stl map c++11

5
推荐指数
1
解决办法
2238
查看次数