如果@Provides方法很复杂的话,可以将这些代码移动到单独的类中。这个类需要实现Guice的Provider 接口,该接口定义如下
public interface Provider<T> {
T get();
}
为一个generic 接口。
本例我们定义一个PathProvider,用于返回一个Path对象:
public class PathProvider implements Provider<Path>{
private String pathdata
= "M 60 20 Q -40 70 60 120 Q 160 70 60 20 z";
@Override
public Path get() {
return Path.fromString(pathdata);
}
}
然后在Module中定义从Path类到Provider的绑定:
bind(Path.class).toProvider(PathProvider.class);
然后使用绘制这个Path:
public class ProviderBindingsDemo extends Graphics2DActivity{
@Inject Path path;
protected void drawImage(){
AffineTransform mat1;
// Colors
Color redColor = new Color(0x96ff0000, true);
Color greenColor = new Color(0xff00ff00);
Color blueColor = new Color(0x750000ff, true);
mat1 = new AffineTransform();
mat1.translate(30, 40);
mat1.rotate(-30 * Math.PI / 180.0);
// Clear the canvas with white color.
graphics2D.clear(Color.WHITE);
graphics2D.setAffineTransform(new AffineTransform());
SolidBrush brush = new SolidBrush(greenColor);
graphics2D.fill(brush, path);
graphics2D.setAffineTransform(mat1);
brush = new SolidBrush(blueColor);
com.mapdigit.drawing.Pen pen
= new com.mapdigit.drawing.Pen(redColor, 5);
graphics2D.setPenAndBrush(pen, brush);
graphics2D.draw(null, path);
graphics2D.fill(null, path);
}
}
本例下载
分享到:
相关推荐
Extending PCL for use with Python Bindings generation using Pybind11,介绍如何使用Pybind11生成Python Bindings。
赠送jar包:cxf-rt-bindings-soap-3.0.1.jar; 赠送原API文档:cxf-rt-bindings-soap-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-bindings-soap-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-bindings-soap-...
KeyBindings 使用与 EditorMacro 不同的方法来修改快捷方式。 这样做的主要好处是: + 编辑器停靠时不会重置自定义快捷方式。 + 支持多键快捷键。 + 文件类型更改不会重置自定义快捷方式。 不幸的是,这种方法不能...
构建WCF面向服务的应用程序系列课程(5):绑定(Bindings)
guileplayer是libplayerc的Scheme绑定-lib客户端库,是Player / Stage项目的一部分。 它可以与guile(GNU方案解释器)1.6版或更高版本一起使用。
赠送jar包:cxf-rt-bindings-xml-3.0.1.jar; 赠送原API文档:cxf-rt-bindings-xml-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-bindings-xml-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-bindings-xml-3.0.1....
wxWindows 的 Java 绑定,跨平台 GUI API。
Net::SAML2 - SAML bindings and protocol implementation
MQ常用操作:设置、启停、建立队列、生成.bindings文件
RxJava binding APIs for Android UI widgets from the platform and support libraries. Download Platform bindings: compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0' 'support-v4' library bindings: ...
Cocos2d-x3.6使用bindings-generator来生成c++类的lua绑定
Xamarin.Android.Maps.Utils 适用于Xamarin.Android绑定官方上有关Android Maps Utils的示例和其他信息Xamarin.Android.Maps.Utils产品特点管理标记群Xamarin.Android应用中带有自定义标记的屏幕截图: 将GeoJSON...
IBM_MQ_使用指南
XDroidFFmpeg 用于Xamarin.Android绑定... 首先,在(Xamarin.)Android使用似乎很容易-周围有一些项目,但也有一些难题,例如正确地为不同的ABI进行编译以及增加对硬件加速的支持。 在针对ffmpeg命令方面所做的出色工作
此电子版文档为Scala Spark Bindings,格式为pdf。英文超清晰版。
开源项目-tensorflow-tensorflow.zip,Coming soon: Go bindings for TensorFlow