Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android RoboGuice使用指南(8) Provider Bindings

Android RoboGuice使用指南(8) Provider Bindings

編輯:Android開發教程

如果@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);     

 }

}

本例下載: http://www.imobilebbs.com/download/android/roboguice/ProviderBindingsDe mo.zip

查看全套文章:http://www.bianceng.cn/OS/extra/201301/34950.htm

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved