小编Ilj*_* S.的帖子

Android Maps API v2绘制圆圈

使用以下代码绘制圆圈(取自Google Play服务"地图"示例):

    PolylineOptions options = new PolylineOptions();
    int radius = 5; //What is that?
    int numPoints = 100;
    double phase = 2 * Math.PI / numPoints;
    for (int i = 0; i <= numPoints; i++) {
        options.add(new LatLng(SYDNEY.latitude + radius * Math.sin(i * phase),
                SYDNEY.longitude + radius * Math.cos(i * phase)));
    }
    int color = Color.RED;
    mMap.addPolyline(options
            .color(color)
            .width(2));
Run Code Online (Sandbox Code Playgroud)

这是在世界不同地区得出的:

悉尼 斯堪

如你所见圆圈不是真正的圆圈,甚至第二个圆圈基本上都是椭圆形.

我想圈子的"抗锯齿"取决于int numPoints变量中的点数.

  1. int radius = 5示例代码中的变量是什么?我是说它的衡量标准是什么?
  2. 并且主要问题是什么是以为单位绘制给定半径的漂亮圆的正确方法?与api v1中的内容相似的东西canvas.drawCircle()

更新--------------------

改进数学后我可以画出"正确"的圆圈:

private void addCircle(LatLng …
Run Code Online (Sandbox Code Playgroud)

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

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

Android:设置为可点击的块onTouch事件时的RecyclerView项

看起来像将RecyclerView的项目布局设置为clickable ="true",完全消耗一些触摸事件,特别是MotionEvent.ACTION_DOWN(事后ACTION_MOVE和ACTION_UP正在工作):

item.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/demo_item_container"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:background="?android:attr/selectableItemBackground"
    android:clickable="true"> <-- this what breaks touch event ACTION_DOWN

....    
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在onCreate()中具有非常基本的RecyclerView设置:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list);    
... //Standard recyclerView init stuff

//Please note that this is NOT recyclerView.addOnItemTouchListener()
recyclerView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                Log.d("", "TOUCH ---  " + motionEvent.getActionMasked());
                //Will never get here ACTION_DOWN when item set to android:clickable="true" 
                return false;
            }
      });
Run Code Online (Sandbox Code Playgroud)

这是在RecyclerView中的预期行为或错误导致它仍然是一个预览?

PS.我希望这可以按照文档进行点击,以对按下状态做出反应并对点击产生连锁反应.设置为false时ACTION_DOWN正常工作但未触发按下状态且selectableBackground没有任何效果.

android android-recyclerview

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

您如何在您的Java模型中表示出生日期?

等等,不要急于回答"java.util.Date",请考虑以下场景.

具有2个字段的Person对象:"birthday"和"nextMeeting"都是java.util.Date.现在生日存储在数据库中作为日期类型列(没有时间),例如.01-10-1979,和next作为日期时间类型的例子.01-10-2010 20:00:00

你从db中取出它,"生日"将由JDBC自动设置为午夜.现在,您需要使用RMI或任何技术将此对象发送到其他JVM.

另一方面,JVM在发起JVM时具有-1h的时区.这是问题开始的地方.nextMeeting成为01-10-2010 19:00:00,从用户的角度来看,这绝对是精细和正确的......

但是生日变成30-09-1979 23:00:00将在9月30日表示给用户,这实际上不是我们想要的,因为显然生日是静态的并且不依赖于时区.

所以db中的列类型选择正确(日期).这种类型的列通常表示为java.util.Date.但在我们的例子中,使用java类型是错误的.

那你怎么代表一个生日?考虑一下你需要在UI上操作这个对象,就像在datepicker组件中一样......

java date java.util.date

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

SignalR hub中的简单Injector per-web-api-request依赖

根据这篇文章,应该可以将每个Web请求依赖项注入SignalR集线器(尽管有一些限制,如OnDisconnected()方法的问题).在我的例子中,它是ASP Web API(而不是MVC),并且由于某种原因它不起作用.

以下是相关部分:

container.RegisterWebApiControllers(httpConfiguration);

container.RegisterWebApiRequest<DbContext, MyDbContext>();
container.RegisterWebApiRequest<ISampleRepository, SampleRepository>(); //DbContext injected to SampleRepository


//Enable injections to SignalR Hubs
var activator = new SimpleInjectorHubActivator(container);
GlobalHost.DependencyResolver.Register(typeof(IHubActivator), () => activator);
Run Code Online (Sandbox Code Playgroud)

这个类可以注入集线器:

public class SimpleInjectorHubActivator : IHubActivator
        {
            private readonly Container _container;

            public SimpleInjectorHubActivator(Container container)
            {
                _container = container;
            }

            public IHub Create(HubDescriptor descriptor)
            {
                return (IHub)_container.GetInstance(descriptor.HubType);
            }
}
Run Code Online (Sandbox Code Playgroud)

和Hub本身:

 [HubName("sample")]
 public class SampleHub : Hub
    {

        public ActiveBetsHub(ISampleRepository repository)
        {
        }

        //Irrelevant methods here. OnDisconnected() NOT implemented!
    }
Run Code Online (Sandbox Code Playgroud)

通过此设置,我得到例外:

No registration …
Run Code Online (Sandbox Code Playgroud)

.net c# simple-injector signalr asp.net-web-api

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