图片加载模块:
## DbUtils使用方法: ```Java DbUtils db = DbUtils.create(this); User user = new User(); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性 user.setEmail("wyouflf@qq.com"); user.setName("wyouflf"); db.save(user); // 使用saveBindingId保存实体时会为实体的id赋值 // 查找 Parent entity = db.findById(Parent.class, parent.getId()); List<Parent> list = db.findAll(Parent.class);//通过类型查找 Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=","test")); // IS NULL Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=", null)); // IS NOT NULL Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","!=", null)); // WHERE id<54 AND (age>20 OR age<30) ORDER BY id LIMIT pageSize OFFSET pageOffset List<Parent> list = db.findAll(Selector.from(Parent.class) .where("id" ,"<", 54) .and(WhereBuilder.b("age", ">", 20).or("age", " < ", 30)) .orderBy("id") .limit(pageSize) .offset(pageSize * pageIndex)); // op为"in"时,最后一个参数必须是数组或Iterable的实现类(例如List等) Parent test = db.findFirst(Selector.from(Parent.class).where("id", "in", new int[]{1, 2, 3})); // op为"between"时,最后一个参数必须是数组或Iterable的实现类(例如List等) Parent test = db.findFirst(Selector.from(Parent.class).where("id", "between", new String[]{"1", "5"})); DbModel dbModel = db.findDbModelAll(Selector.from(Parent.class).select("name"));//select("name")只取出name列 List<DbModel> dbModels = db.findDbModelAll(Selector.from(Parent.class).groupBy("name").select("name", "count(name)")); List<DbModel> dbModels = db.findDbModelAll(sql); // 自定义sql查询 db.execNonQuery(sql) // 执行自定义sql
图片加载模块:
## BitmapUtils 使用方法 ```java BitmapUtils bitmapUtils = new BitmapUtils(this); // 加载网络图片 bitmapUtils.display(testImageView, "http://bbs.lidroid.com/static/image/common/logo.png"); // 加载本地图片(路径以/开头, 绝对路径) bitmapUtils.display(testImageView, "/sdcard/test.jpg"); // 加载assets中的图片(路径以assets开头) bitmapUtils.display(testImageView, "assets/img/wallpaper.jpg"); // 使用ListView等容器展示图片时可通过PauseOnScrollListener控制滑动和快速滑动过程中时候暂停加载图片 listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true)); listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true, customListener));
图片加载实例:
public class ImageActivity extends AppCompatActivity { @ViewInject (value = R.id.img) private ImageView iv; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_image); x.view().inject(this ); } @Event (value = {R.id.btn_load,R.id.btn_asset,R.id.btn_network}) private void onClick(View view){ switch (view.getId()) { case R.id.btn_asset: ImageOptions options = new ImageOptions.Builder() .setIgnoreGif(false ) .setLoadingDrawableId(R.mipmap.ic_launcher) .setFailureDrawableId(R.mipmap.ic_launcher) .setUseMemCache(true ) .build(); x.image().bind(iv,"assets://cat.gif" ,options); break ; case R.id.btn_load: options = new ImageOptions.Builder().setIgnoreGif( false ) .setLoadingDrawableId(R.mipmap.ic_launcher) .setFailureDrawableId(R.mipmap.ic_launcher) .setUseMemCache(true ) .build(); x.image().bind(iv,new File( "/sdcard/test.gif" ).toURI().toString(),options); break ; case R.id.btn_network: String url = "https://img-my.csdn.net/uploads/201407/26/1406382922_6166.jpg" ; options = new ImageOptions.Builder().setLoadingDrawableId(R.mipmap.ic_launcher) .setFailureDrawableId(R.mipmap.ic_launcher) .setRadius(20 ) .setFadeIn(true ) .setAutoRotate(true ) .setUseMemCache(true ) .build(); x.image().bind(iv, url, options, new Callback.CommonCallback<Drawable>() { @Override public void onSuccess(Drawable result) { BitmapDrawable bd = (BitmapDrawable) result; Bitmap bm = bd.getBitmap(); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); break ; } } }
数据库使用实例:
public class DatabaseActivity extends AppCompatActivity { @ViewInject (value = R.id.id_database_lv) private ListView lv; private DbManager manager; private DbManager.DaoConfig config; private List<PersonTable>list; private DatabaseAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_database); x.view().inject(this ); config = DBUtils.getDaoConfig(this ); manager = x.getDb(config); list = new ArrayList<>(); if (queryAll()!= null ){ list.addAll(queryAll()); } adapter = new DatabaseAdapter(list, this ); lv.setAdapter(adapter); } public List<PersonTable> queryAll(){ try { List<PersonTable>list = manager.findAll(PersonTable.class ); return list; } catch (DbException e) { e.printStackTrace(); } return null ; } public void insertData(PersonTable person){ try { manager.save(person); } catch (DbException e) { e.printStackTrace(); } } public void updataData( int id){ PersonTable person; try { person = manager.findById(PersonTable.class ,id); person.setName("狗丹" ); manager.update(person,"name" ); } catch (DbException e) { e.printStackTrace(); } } @Event (value = {R.id.id_insert_btn,R.id.id_update_btn,R.id.id_delete_btn}) private void onClick(View view){ switch (view.getId()) { case R.id.id_insert_btn: Toast.makeText(DatabaseActivity.this , "点击了插入" ,Toast.LENGTH_LONG).show(); insertData(new PersonTable( 1 , "cindy" , 23 , "女" , 4500 )); insertData(new PersonTable( 2 , "tom" , 24 , "男" , 8500 )); insertData(new PersonTable( 3 , "jack" , 25 , "男" , 10000 )); insertData(new PersonTable( 4 , "rose" , 26 , "女" , 9500 )); insertData(new PersonTable( 6 , "张三" , 25 , "男" , 10000 )); insertData(new PersonTable( 7 , "狗剩" , 26 , "女" , 9500 )); list.clear(); list.addAll(queryAll()); adapter.notifyDataSetChanged(); break ; case R.id.id_update_btn: updataData(6 ); list.clear(); list.addAll(queryAll()); adapter.notifyDataSetChanged(); break ; case R.id.id_delete_btn: try { manager.deleteById(PersonTable.class , 6 ); PersonTable person = manager.selector(PersonTable.class ).where( "age" , "=" , "25" ).findFirst(); manager.delete(person); manager.delete(PersonTable.class , WhereBuilder.b( "age" , ">" , "24" ).and( "sex" , "=" , "女" )); } catch (DbException e) { e.printStackTrace(); } list.clear(); list.addAll(queryAll()); adapter.notifyDataSetChanged(); break ; } } }
* 数据库形成表的注意事项: * 1 .在类名之上加入 @Table (name = "person" )标签,表示当前的类会被创建成表,name属性之后 * 对应的值表示表的名称 * 2 .类当中的属性需要在上面加入 @Column (name = " " )标签,然后name对应的值就代表了数据库当中的表的名称。 * 3 .类当中一定有一个属性作为主键,否则表不会创建成功,autoGen代表了主键的数字是否是自增长的, * 如果不写,默认自增长 */ @Table (name = "person" ) public class PersonTable { @Column (name = "id" , isId = true , autoGen = true ) private int id; @Column (name = "name" ) private String name; @Column (name = "age" ) private int age; @Column (name = "sex" ) private String sex; @Column (name = "salary" ) private double salary; public int getId() { return id; } public void setId( int id) { this .id = id; } public String getName() { return name; } public void setName(String name) { this .name = name; } public int getAge() { return age; } public void setAge( int age) { this .age = age; } public String getSex() { return sex; } public void setSex(String sex) { this .sex = sex; } public double getSalary() { return salary; } public void setSalary( double salary) { this .salary = salary; } public PersonTable( int id, String name, int age, String sex, double salary) { this .id = id; this .name = name; this .age = age; this .sex = sex; this .salary = salary; } public PersonTable() { } }