频道栏目
首页 > 资讯 > Android > 正文

Android RoboGuice使用指南(8):Provider Bindings

12-05-04        来源:[db:作者]  
收藏   我要投稿

如果@Provides方法很复杂的话,可以将这些代码移动到单独的类中。这个类需要实现Guice的Provider 接口,该接口定义如下

[java] public interface Provider<T> { 
 T get(); 

public interface Provider<T> {
 T get();
}

 

为一个generic 接口。

本例我们定义一个PathProvider,用于返回一个Path对象:

[java] 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); 
 } 
  

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的绑定:

[java] bind(Path.class).toProvider(PathProvider.class); 
bind(Path.class).toProvider(PathProvider.class);

然后使用绘制这个Path:

[java] 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); 
  
 } 
  

 

本例下载:../../2012/0504/20120504100129894.zip
 

 


摘自  引路蜂移动软件

相关TAG标签
上一篇:Android RoboGuice使用指南(9):Untargetted Bindings
下一篇:Android RoboGuice使用指南(7):@Provides Methods
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站