xutils的使用方法及模块二,浅谈xutil3的四大模块

图片模块:(核心方法)

x.image().bind(imageView, url, imageOptions);
x.image().bind(imageView, "file:///sdcard/test.gif", imageOptions);
x.image().bind(imageView, "assets://test.gif", imageOptions);
x.image().bind(imageView, url, imageOptions, new Callback.CommonCallback() {...});
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback() {...});
x.image().loadFile(url, imageOptions, new Callback.CommonCallback() {...});

这里简单的讲一个 imageOptions这个参数,其他的也没什么好说的,一些图片控件,url,路径,不同的方法加载图片而已
ImageOptions options=new ImageOptions.Builder()
//设置加载过程中的图片
.setLoadingDrawableId(R.drawable.ic_launcher)
//设置加载失败后的图片
.setFailureDrawableId(R.drawable.ic_launcher)
//设置使用缓存
.setUseMemCache(true)
//设置显示圆形图片
.setCircular(true)
//设置支持gif
.setIgnoreGif(false)
.build();

如果要对图片进行操作,可以使用带有回调的方法,建议:
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback() {...});




下面进行最重要的模块:

数据库模块:


特点:用过ormlite的都应该会很快的入手,在本模块中就是基于orm类似的方式实现的:直接上代码,进行增删改查操作,
相信对ORM框架有过了解的人,大概都知道只要创建一个JavaBean对象,在类的上面和属性的上面添加注释标签,这样就能生成一个表。下面带大家看一下XUtils3的实体bean的写法:
1.在类名上面加入@Table标签,标签里面的属性name的值就是以后生成的数据库的表的名字 
2.实体bean里面的属性需要加上@Column标签,这样这个标签的name属性的值会对应数据库里面的表的字段。 
3.实体bean里面的普通属性,如果没有加上@Column标签就不会在生成表的时候在表里面加入字段。 
4.实体bean中必须有一个主键,如果没有主键,表以后不会创建成功,@Column(name=”id”,isId=true,autoGen=true)这个属性name的值代表的是表的主键的标识,isId这个属性代表的是该属性是不是表的主键,autoGen代表的是主键是否是自增长,如果不写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 String 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 String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


    public String getSalary() {
        return salary;
    }

    public void setSalary(String salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "PersonTable [id=" + id + ", name=" + name + ", age=" + age
                + ", sex=" + sex + ", salary=" + salary + "]";
    }
}

1.setDbName 设置数据库的名称 
2.setDbDir 设置数据库存放的路径 
3.setDbVersion 设置数据库的版本 
4.setAllowTransaction(true) 设置允许开启事务 
5.setDbUpgradeListener 设置一个版本升级的监听方法 
那么具体我们什么时候创建的表呢?如果我们单纯的调用XUti.getDaoConfig()方法是不能够创建PersonTable这个实体对应的person这张表的,那么如何创建表呢? 
只需要一下几步: 
1.DaoConfig daoConfig=XUtil.getDaoConfig(); 
2.DbManager db = x.getDb(daoConfig); 

 //封装一个创建表的封装,拿到daoconfig对象
public class XUtil {
    static DbManager.DaoConfig daoConfig;
    public static DaoConfig getDaoConfig(){
        File file=new File(Environment.getExternalStorageDirectory().getPath());
        if(daoConfig==null){
            daoConfig=new DbManager.DaoConfig()
            .setDbName("shiyan.db")
            .setDbDir(file)
            .setDbVersion(1)
            .setAllowTransaction(true)
            .setDbUpgradeListener(new DbUpgradeListener() {
                @Override
                public void onUpgrade(DbManager db, int oldVersion, int newVersion) {

                }
            });
        }
        return daoConfig;
    }
}
插入操作:
private void insert() {
        try {
            PersonTable person=new PersonTable();
            person.setName("小丽");
            person.setAge(19);
            person.setSex("woman");
            person.setSalary(4000);
            db.save(person);
          //db.saveOrUpdate(person);
          //db.saveBindingId(person);
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

查询:
private void query(){
        try {
            PersonTable person = db.findById(PersonTable.class, "2");
            Log.e("person",person.toString());
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

private void query() {
        try {
            PersonTable person = db.findFirst(PersonTable.class);
            Log.e("person", person.toString());
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

private void query() {
        try {
            List persons = db.findAll(PersonTable.class);
            Log.e("persons", persons.toString());
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

private void query() {
        try {
            List persons = db.selector(PersonTable.class).where("age", ">", 30).and("sex", "=", "man").findAll();
            for(PersonTable person:persons){
                Log.e("person",person.toString());
            }
        } catch (DbException e) {
            e.printStackTrace();
        }
    }


private void query() {
        try {
            DbModel model = db.findDbModelFirst(new SqlInfo("select * from person"));
            Log.e("age", model.getString("age"));
        } catch (DbException e) {
            e.printStackTrace(); 
        }
    }

private void query() {
        try {
            List persons = db.findDbModelAll(new SqlInfo("select * from person where age > 25"));
            for(DbModel person:persons){
                Log.e("name", person.getString("name"));
            }
        } catch (DbException e) {
            e.printStackTrace();
        }
    }
修改:
private void update() {
        try{
            PersonTable person = db.findById(PersonTable.class, 1);
            person.setAge(25);
            db.update(person, "age");
        }catch(Exception e){
            e.printStackTrace();
        }
    }

private void update() {
        try {
            List persons = db.findAll(PersonTable.class);
            for(PersonTable person:persons){
                person.setSalary(6000);
                db.update(person, WhereBuilder.b("sex", "=", "man"), "salary");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

private void update() {
        try {
            List persons = db.findAll(PersonTable.class);
            for(PersonTable person:persons){
                person.setSalary(6000);
                person.setAge(40);
                db.update(person, WhereBuilder.b("sex", "=", "man"), "salary","age");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

删除:
private void delete() {
        try {
            db.deleteById(PersonTable.class, 5);
        } catch (DbException e) {
            e.printStackTrace();
        }
    }


private void delete() {
        try {
            PersonTable person = db.selector(PersonTable.class).where("name", "=", "骆驼").findFirst();
            db.delete(person);
        } catch (DbException e) {
            e.printStackTrace(); 
        }
    }

private void delete() {
        try {
            db.delete(PersonTable.class);
        } catch (DbException e) {
            e.printStackTrace(); 
        }
    }

private void delete() {
        try {
            db.delete(PersonTable.class, WhereBuilder.b("sex", "=", "woman").and("salary", "=", "5000"));
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

private void delete() {
        try {
            db.dropTable(PersonTable.class);
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

 db.dropDb();

其他模块地址:
http://blog.csdn.net/qq_35681180/article/details/53888853


你可能感兴趣的:(网络框架和图片加载)