Android开源框架之Afinal

  • Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。
  • 下载地址:https://github.com/yangfuhai/afinal

使用步骤:
1.导入jar包
2.在项目中添加联网权限:
3.继承FinalActivity类
4.使用注解@ViewInject()

Demo展示:

package com.example.dell.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import net.tsz.afinal.FinalActivity;
import net.tsz.afinal.FinalBitmap;
import net.tsz.afinal.FinalHttp;
import net.tsz.afinal.annotation.view.ViewInject;
import net.tsz.afinal.http.AjaxCallBack;
import net.tsz.afinal.http.AjaxParams;

import java.io.File;
import java.io.FileNotFoundException;


// Afinal框架讲解
public class AfinalActivity extends FinalActivity {

    @ViewInject(id=R.id.bt_afinal_loadimage,click = "bt_afinal_loadimage_click")
    //不用在布局文件添加onclick属性就可以创建public void bt_afinal_loadimage_click(View v)函数
    private Button bt_afinal_loadimage;

    @ViewInject(id = R.id.bt_afinal_gettext, click = "bt_afinal_gettext_click")
    private Button bt_afinal_gettext;

    @ViewInject(id = R.id.bt_afinal_loadfile, click = "bt_afinal_loadfile_click")
    private Button bt_afinal_loadfile;

    @ViewInject(id = R.id.bt_afinal_updatetext, click = "bt_afinal_updatetext_click")
    private Button bt_afinal_updatetext;

    @ViewInject(id = R.id.iv_afinal)
    private ImageView iv_afinal;

    @ViewInject(id = R.id.tv_afinal_result)
    private TextView tv_afinal_result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_afinal);
    }
    // 加载图片点击事件处理
    public void bt_afinal_loadimage_click(View view){
        FinalBitmap finalBitmap = FinalBitmap.create(this);

        // 网络请求图片时默认显示的图片
        finalBitmap.configLoadingImage(R.drawable.atguigu_logo);

        // 开始加载图片
        finalBitmap.display(iv_afinal,"http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg");
    }

    // 请求文本的点击事件处理
    public void bt_afinal_gettext_click(View view){
        FinalHttp finalHttp = new FinalHttp();

        String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api";
        finalHttp.get(url, new AjaxCallBack<Object>() {
            @Override
            public void onStart() {
                tv_afinal_result.setText("开始加载");
                super.onStart();
            }

            @Override
            public void onSuccess(Object o) {
                // 显示加载成功后的结果
                tv_afinal_result.setText(o.toString());
                super.onSuccess(o);
            }

            @Override
            public void onFailure(Throwable t, int errorNo, String strMsg) {
                tv_afinal_result.setText("加载失败");

                super.onFailure(t, errorNo, strMsg);
            }
        });
    }

    // 加载文件的点击事件处理
    public void bt_afinal_loadfile_click(View view){
        FinalHttp finalHttp = new FinalHttp();

        // 请求网络资源的地址
        String url = "http://vfx.mtime.cn/Video/2016/10/11/mp4/161011092841270064_480.mp4";

        // 存放视频文件到本地位置
        String target = getFilesDir()+"/afinalmusic.mp4";

        finalHttp.download(url, target, new AjaxCallBack<File>() {
            @Override
            public void onSuccess(File file) {
                tv_afinal_result.setText("下载文件成功");
                super.onSuccess(file);
            }

            @Override
            public void onFailure(Throwable t, int errorNo, String strMsg) {
                tv_afinal_result.setText("下载文件失败");
                super.onFailure(t, errorNo, strMsg);
            }

            @Override
            public void onStart() {
                tv_afinal_result.setText("开始下载");
                super.onStart();
            }
        });
    }

    // 上传文本点击事件的处理
    public void bt_afinal_updatetext_click(View view){
        FinalHttp finalHttp = new FinalHttp();

        // 文件上传到服务器的位置
        String url  = "http://192.168.152.1:8080/FileUpload/FileUploadServlet";

        AjaxParams params = new AjaxParams();
        // 获取要上传的本地资源
        try {
            params.put("File",new File(getFilesDir()+"/afinalmusic.mp4"));

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        finalHttp.post(url, params, new AjaxCallBack<Object>() {
            @Override
            public void onStart() {
                tv_afinal_result.setText("开始上传");
                super.onStart();
            }

            @Override
            public void onSuccess(Object o) {
                tv_afinal_result.setText("上传成功");
                super.onSuccess(o);
            }

            @Override
            public void onFailure(Throwable t, int errorNo, String strMsg) {
                tv_afinal_result.setText("上传失败");
                super.onFailure(t, errorNo, strMsg);
            }
        });
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值