您的位置:首页 > 理论基础 > 计算机网络

Android网络框架xUtils的图片处理操作

2017-08-07 11:17 302 查看
xUtils:当前比较火的框架,并且用处也是比较多。
一.目前xUtils主要有四大模块:

DbUtils模块:用于数据库的操作,也是需要注解方式指定表名和列名;

ViewUtils模块:注解方式就可以进行UI,资源和事件绑定;

HttpUtils模块:用于网络数据的请求;

BitmapUtils模块:用于图片的下载和绑定视图;

本文主要讲解xUtils中的图片下载和绑定操作。
使用:

AndroidStudio使用xUtils之前添加依赖就可以了:

compile ‘org.xutils:xutils:3.3.38’

GitHub中的源码地址:https://github.com/wyouflf/xUtils3

二.使用示例
最简单的使用示例。其实就一句话。
(一)添加依赖语句
compile 'org.xutils:xutils:3.3.38'
1
1
(二)添加权限
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

(三)在自己的Application中的onCreate方法里注册xutils
x.Ext.init(this);

这里要记得在AndroidManifest中添加Application中的name。
(四)设计布局activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="网络图片" />    <ImageView        android:id="@+id/iv1"        android:layout_width="300dp"        android:layout_height="300dp"        android:layout_margin="10dp"        android:scaleType="fitXY" />    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="本地图片" />    <ImageView        android:id="@+id/iv2"        android:layout_width="300dp"        android:layout_height="300dp"        android:layout_margin="10dp"        android:scaleType="fitXY" /></LinearLayout>
(五)设计java代码
package fuxi.xutils;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ImageView;import org.xutils.x;import java.io.File;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ImageView imageView = (ImageView) findViewById(R.id.iv1);        ImageView imageView2 = (ImageView) findViewById(R.id.iv2);        //xUtils绑定网络图片        //第一个参数是ImageView对象        //第二个参数是URL字符串地址        x.image().bind(imageView, "http://p0.so.qhmsg.com/sdr/600_900_/t01d43698fbeca29695.jpg");        //xUtils绑定本地图片        //第一个参数是ImageView对象        //第二个参数是URL字符串地址,这里非要转换为File后在获取地址,直接使用"mnt/sdcard/a1.jpg"不行!        x.image().bind(imageView2, new File("mnt/sdcard/a1.jpg").getAbsolutePath());        //一般的如果是绑定本地图片,是不会使用框架的,下面这个语句就可以了        // imageView2.setImageURI(Uri.fromFile(new File("mnt/sdcard/a1.jpg")));    }}
程序运行后的界面:



      其实这里应用的话,一般是不用来绑定本地图片的,因为呢本地图片不需要子线程,也是一句话搞定。如果是加载网络图片还有有点用的,毕竟如果自己实现网络图片的绑定还要去做异步任务的下载。
三.复杂一点的使用示例
       设置图片的各种属性的设置,这里只做Java代码的设计,前需要的步骤和上面程序是一样的。布局文件也是用上面的,把两个TextView去掉就可以。
public class LoadImageView extends AppCompatActivity {    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ImageView imageView = (ImageView) findViewById(R.id.iv1);        ImageView imageView2 = (ImageView) findViewById(R.id.iv2);        //设置图片属性的options        ImageOptions options = new ImageOptions.Builder()                //设置图片的大小                .setSize(300, 300)                // 如果ImageView的大小不是定义为wrap_content, 不要crop.                .setCrop(true)                // 加载中或错误图片的ScaleType                //.setPlaceholderScaleType(ImageView.ScaleType.MATRIX)                .setImageScaleType(ImageView.ScaleType.CENTER_CROP)                //设置加载过程中的图片                .setLoadingDrawableId(R.mipmap.ic_launcher)                //设置加载失败后的图片                .setFailureDrawableId(R.mipmap.ic_launcher)                //设置使用缓存                .setUseMemCache(true)                //设置支持gif                .setIgnoreGif(false)                //设置显示圆形图片                .setCircular(true).build();        x.image().bind(imageView, "http://p4.so.qhmsg.com/sdr/600_900_/t01f4e6c53f0e23d459.jpg", options);        //设置第二张图片属性的options        ImageOptions options2 = new ImageOptions.Builder()                //设置图片的大小                .setSize(DensityUtil.dip2px(120), DensityUtil.dip2px(120))                //设置边角的圆形                .setRadius(DensityUtil.dip2px(5))                //创建                .build();        x.image().bind(imageView2, "http://p2.so.qhmsg.com/sdr/599_900_/t019e91b7618003e862.jpg", options2);    }}
程序运行后的界面:



上面一样是显示两个图片,一个圆形的图片,一个简单设置显示的图片。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐