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"))); }}
程序运行后的界面:
![](https://note.youdao.com/yws/res/3024/0338C2A11B244EDD8793D94F317FC543)
其实这里应用的话,一般是不用来绑定本地图片的,因为呢本地图片不需要子线程,也是一句话搞定。如果是加载网络图片还有有点用的,毕竟如果自己实现网络图片的绑定还要去做异步任务的下载。
三.复杂一点的使用示例
设置图片的各种属性的设置,这里只做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); }}
程序运行后的界面:
![](https://note.youdao.com/yws/res/3023/007367CAFEA141D691B57AFE46384A24)
上面一样是显示两个图片,一个圆形的图片,一个简单设置显示的图片。
一.目前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); }}
程序运行后的界面:
上面一样是显示两个图片,一个圆形的图片,一个简单设置显示的图片。
相关文章推荐
- Android网络框架xUtils的图片处理操作
- Android网络框架xUtils的Http网络数据请求操作
- Android-Volley网络通信框架(二次封装数据请求和图片请求(包含处理请求队列和图片缓存))
- Android-Volley网络通信框架(二次封装数据请求和图片请求(包括处理请求队列和图片缓存))
- Android网络框架xUtils中的View的视图绑定注解操作
- SDWebImage 第三方框架的使用——网络图片的处理操作
- Android网络框架xUtils的数据库操作
- Android 异步获取网络图片并处理导致内存溢出问题解决方法
- Android ListView从网络获取图片及文字显示---图片缓存,多线程处理
- 图片、缓存-Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)-by小雨
- android网络开源框架volley(四)——谈谈图片加载
- Android应用程序开发之图片操作(二)——工程图片资源的加载及OOM的处理
- Android网络处理框架Volley介绍说明
- android&nbsp;网络访问-图片处理优…
- android网络开源框架volley(四)——谈谈图片加载续——九张图片相册的展示(微信微博等)
- 关于android中网络图片下载中oom解决开源框架Afinal的探究
- Android 异步获取网络图片并处理图片Out Of Memory 内存溢出问题
- Android 异步获取网络图片并处理导致内存溢出问题解决方法
- Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)
- Android_开源框架_AndroidUniversalImageLoader网络图片加载