XUtil框架的使用

一、ViewUtils  android中得ioc(控制反转)框架,可以完全使用注解的方式来完成UI的绑定和事件绑定。简单的说,ViewUtils的功能就是做这个的,但是可以说,就这么个功能确是能极大的简化我们的代码。下面我们看下具体的代码,顺便对比下注解的方式绑定ID和findViewById之间的差别。

 

@ViewInject(R.id.btn)
	private Button btn;
	
	@ViewInject(R.id.img)
	private ImageView img;
	
	@ViewInject(R.id.list)
	private ListView list;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		ViewUtils.inject(this);}
相当于
@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		
		btn = (Button) findViewById(R.id.btn);
		img = (ImageView) findViewById(R.id.img);
		list = (ListView) findViewById(R.id.list);
		
	}
如果每次都这样findViewByid的话显得代码多余复杂,看起来也不容易,而只通过XUtil的简单注解,就可以完成这些

下面是XUtil的监听事件,常用的一些监听XUtil都已经封装好了,比如Button,ListView,RadioGroup等等,只需要通过注解监听他们就好了

@OnClick({ R.id.btn, R.id.img })
	public void clickMethod(View v) {
		Toast.makeText(SecondActivity.this, "you clicked button!",
				Toast.LENGTH_SHORT).show();
	}

	@OnItemClick(R.id.list)
	public void itemClick(AdapterView<?> parent, View view, int position,long id) {
		Toast.makeText(SecondActivity.this, "position--->" + position,
				Toast.LENGTH_SHORT).show();
	}
二、BitmapUtils  加载网络或本地bitmap的时候无需担心再遇到OOM的现象,管理bitmap的内存采用了LRU算法,同时也能避免列表滑动过程中发生图片错位等得现象。加载网络图片时,还可以配置运行线程的数量,缓存路径等。。。通过BitmapUtils的各种构造器,可以很方便的创建出本地缓存路径和缓存的大小,以及内存缓存的大小。

BitmapUtils utils = new BitmapUtils(this);
		BitmapDisplayConfig config = new BitmapDisplayConfig(this);
		config.setLoadingDrawable(getResources().getDrawable(R.drawable.loading));
		config.setLoadFailedDrawable(getResources().getDrawable(R.drawable.failed));
		config.setImageLoadCallBack(new ImageLoadCallBack() {
			@Override
			public void loadFailed(ImageView imageView, Drawable drawable) {
			}
			@Override
			public void loadCompleted(ImageView imageView, Drawable drawable,
					BitmapDisplayConfig config) {
			}
		});
		config.setBitmapMaxWidth(480);
		config.setBitmapMaxHeight(720);
//		utils.display(img, "http://img1.gtimg.com/news/pics/hv1/63/26/1451/94357968.jpg");
		utils.display(img, "http://img1.gtimg.com/news/pics/hv1/63/26/1451/94357968.jpg", config);



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章