• .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示


    xUtils注入和图片显示

    一、xUtils注入

    引用官方介绍:

    ViewUtils模块:
     
    •android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
    •新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
    •目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event

          之前我们写事件比如Btn的Click事件一般采用硬编码或者Linstener的方式来实现,从界面某个元素取值或者赋值必须首先使用findcontrol来找到他较为麻烦且难以维护,而这些使用xUtils的注解功能就能很简洁的完成,比如下例我们实现点击Btn给文本框赋值操作:

    wpsA9F6.tmp

    点击Btn后:

    wpsAA07.tmp

    要实现xUtils注入首先得在onCreate中加入:

    ViewUtils.inject(this); //注入view和事件

    之后定义控件如下:

    @ViewInject(R.id.lbl_info)
    
    private TextView textView;

    这样就相当于找到界面ID为lbl_infoTextView ,在接下来的代码中随意使用:

    textView.setText("Clicked Btn");

    能注入View同样也能注入事件,如我们要实现Btn的点击事件只需如下编码即可:

    @OnClick(R.id.btn_test)
    public void btn_testClick(View v)
    
    { 
    // 方法签名必须和接口中的要求一致 .... }

    而前台并不需要定义它的事件:

    <Button
    android:id="@+id/btn_test"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Show Me" />

    结合起来就是:

    @OnClick(R.id.btn_test)
    public void btn_testClick(View v)
        { 
            // 方法签名必须和接口中的要求一致
            textView.setText("Clicked Btn");
    
        }

    这种方式必须保证控件有ID。

    二、使用xUtils完成图片的显示

    ◦ BitmapUtils模块:
     
    •加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
    •支持加载网络图片和本地图片;
    •内存管理使用lru算法,更好的管理bitmap内存;
    •可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...

    1.网络图片:

    需要增加网络或者SD卡访问权限:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    拿博客园Logo为例,访问的代码如下:

    BitmapUtils bitmapUtils = new BitmapUtils(this);
    bitmapUtils.display(imgItem, "http://42.121.254.191/images/logo_small.gif");

    思路是先在界面声明图片控件:

    <ImageView
    android:id="@+id/img_item"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />

    再找到这个控件:

    @ViewInject(R.id.img_item)
    private ImageView imgItem;

    将开始访问网络图片的那句代码放入按钮点击事件下,运行即可:

    wpsAA08.tmp

    2. 本地图片

    在本地assets中放入一个图片待显示。

    只需一句代码(剩下的和上例同):

    bitmapUtils.display(imgItem, "assets/qq.jpg");

    wpsAA18.tmp

  • 相关阅读:
    JDK15视频会及新特性总节
    设计模式之访问者模式
    datax分析与思考(一)
    beanfactory中单例bean的初始化过程(一)
    IIS 404错误,错误代码:0x80070002
    WebApi
    多线程--程序员必修课
    委托(续2)
    委托(续)
    委托
  • 原文地址:https://www.cnblogs.com/madyina/p/4319449.html
Copyright © 2020-2023  润新知