安卓网络访问(xUtils3)

移动开发 作者: 2024-08-20 01:10:01
xUtils3是安卓网络访问的重要库,基本上的网络请求所涉及的内容都有集成。笔者将实现xUtils3的简单使用,包括简单GET和POST请求、文件上传、文件下载、图片显示。 其主要特性有以下几点: ①
1 compile 'org.xutils:xutils:3.4.0'
1 import org.xutils.x;
2 class Xutilsinit extends Application {
3     @Override
4     public void onCreate() {
5         super.onCreate();
6         x.Ext.init(this);
7         x.Ext.setDebug(true);//是否输出Debug日志
8     }
9 }
<uses-permission android:name="android.permission.INTERNET" />
="android.permission.WRITE_EXTERNAL_STORAGE" />
 1 /设置需要访问的URL
 2 String url="http://193.112.87.88/library/user_login.php";
 3 
 4 
 5 设置post表单数据,以键值对设置
 6 RequestParams params =new RequestParams(url);
 7 params.addBodyParameter("account","164" 8 params.addBodyParameter("password","dong" 9 
10 简单的加载提示框
11 final ProgressDialog dia=new ProgressDialog(MainActivity.12 dia.setMessage("东小东加载中……"13 dia.show();
14 
15 开始网络访问
16 如果是get请求,则x.http().get(params,new Callback.CommonCallback<String>() 即可
17 x.http().post(params,new Callback.CommonCallback<String>() {
18 19      onSuccess(String result) {
20         访问成功时进入,得到访问返回的数据
21         Toast.makeText(x.app(),"东小东提示获取的数据为:"+ result,Toast.LENGTH_LONG).show();
22         System.out.println("获取到的数据是"+result);
23 
24 25 
26 27     void onError(Throwable ex,1)">boolean isOnCallback) {
28         请求错误进入
29         Toast.makeText(x.app(),"东小东提示:请求错误",1)">30         
31 32 
33 34      onCancelled(Callback.CancelledException cex) {
35      ////主动调用取消请求的回调方法
36 37 
38 39      onFinished() {
40         访问结束时进入,停止加载框
41         dia.dismiss();
42 43 });
 1 设置需要访问的URL
 2  String url="http://193.112.87.55/file1.php" 5   6  RequestParams params = 7  params.setMultipart(true 8  params.addBodyParameter("yzm","112233"File filex= new File(Environment.getExternalStorageDirectory()+"/东小东.jpg");
 params.addBodyParameter("img",filex,"multipart/form-data","dongxiaodong.jpg");其中dongxiaodong.jpg为重命名
12  
13  生成文件对象,需要绝对路径
14  File filex= new File(Environment.getExternalStorageDirectory()+"/gg.mp3"15  params.addBodyParameter("img","multipart/form-data");保留文件原名
16 
17 
18  19  20  dia.setMessage("东小东加载中……"21  dia.show();
22 
23  开始网络访问
24  x.http().post(params,1)">25      @Override
26      27          28          Toast.makeText(x.app(),1)">29          System.out.println("获取到的数据是"+30 
     }
34      35          36          Toast.makeText(x.app(),1)">39 
40 41      42          43          Toast.makeText(x.app(),"东小东提示:已取消请求"44 45 
46 47      48          49          Toast.makeText(x.app(),"东小东提示:完成请求"50          dia.dismiss();
51 52  });
private  downloadUpdateApk() {
 2     if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
 4          5          6         dia.setMessage("东小东马上下载中........" 7         dia.show();
 8         
 9         下载地址
10         RequestParams requestParams = new RequestParams("http://193.112.87.88/filexxx/gg.mp3"11          文件下载后的保存路径及文件名
12         requestParams.setSaveFilePath(Environment.getExternalStorageDirectory()+"/dongxiaodong/东小东.mp3"13          下载完成后自动为文件命名
14         requestParams.setAutoRename(false15         下载请求
16         x.http().get(requestParams,1)">new Callback.ProgressCallback<File>            @Override
19              onSuccess(File result) {
20                倒数第二调用
21                 Toast.makeText(MainActivity.this,"下载完成"22                 System.out.println("---------------下载完成---------------------------"23                 dia.setMessage("东小东下载完成**"            }
27             28                 Toast.makeText(MainActivity.29                 System.out.println("---------------下载失败---------------------------"34              onCancelled(CancelledException cex) {
35 
36                 Toast.makeText(MainActivity.37                 System.out.println("---------------取消下载---------------------------"41             42                 最后调用
43                 Toast.makeText(MainActivity.44                 System.out.println("---------------下载结束---------------------------"45                 dia.dismiss();
46 
47 48 
49 50              onWaiting() {
51                  最开始调用
52                 Toast.makeText(MainActivity.53                 System.out.println("---------------等待下载---------------------------"54 
55 56 
57 58              onStarted() {
59                 第二调用
60                 Toast.makeText(MainActivity.61                 System.out.println("---------------开始下载---------------------------"62                 dia.setMessage("东小东下载开始----"63 64 
65 66             void onLoading(long total,1)">long current,1)"> isDownloading) {
67                  当前的下载进度和文件总大小
68                  下载的时候不断回调的方法
69                 参数:总大小,已经下载的大小,是否正在下载
70                 System.out.println("***"+total+"********"+current+"****************"+isDownloading+"**********"71                 百分比为整数
72                 System.out.println("下载进度为:"+(int)(((float)current/total)*100)+"%"73                 百分比为小数
74                 dia.setMessage("东小东下载进度为:"+((float)current/total)*100+"%"75 
76 77         });
78 79 
80 }
 android.widget.ImageView;
 2  org.xutils.common.util.DensityUtil;
 3  org.xutils.image.ImageOptions;
 4  5 
 6 /**
 * Created by 东东 on 2018/12/29.
 8  */
 9 class ShowImage {
10 
11    显示默认图片,参数(图片控件,图片地址),地址可为网络或本地地址
12     static  displaydDfault(ImageView imageView,String iconUrl) {
13         ImageOptions imageOptions =  ImageOptions.Builder()
14                 .setIgnoreGif(false)是否忽略gif图。false表示不忽略。不写这句,默认是true
                .setImageScaleType(ImageView.ScaleType.CENTER_CROP)
16                 .setIgnoreGif(是否忽略gif图,false表示不忽略,不写这句,默认是true
17                 .setUseMemCache(true)是否支持缓存
18                 .setFailureDrawableId(R.mipmap.ic_launcher)设置加载失败显示的图片
19                 .setLoadingDrawableId(R.mipmap.ic_launcher)设置加载中显示的图片
20                 .build();
        x.image().bind(imageView,iconUrl,imageOptions);
22 24     显示圆角图片,参数(图片控件,圆角半径,图片地址),地址可为网络或本地地址
25     圆角半径,100为圆形
26     void displayCutR(ImageView imageView,1)">int radius,1)">27         ImageOptions imageOptions = 28                  .setSize(DensityUtil.dip2px(120),DensityUtil.dip2px(120))图片大小
29 30                 .setRadius(DensityUtil.dip2px(radius))
31                 .setIgnoreGif(32                 .setCrop(是否对图片进行裁剪
                .setFailureDrawableId(R.mipmap.ic_launcher)
34                 .setLoadingDrawableId(R.mipmap.ic_launcher)
35 37 38 
40     显示圆形图片,参数(图片控件,图片地址),地址可为网络或本地地址
41      displayRoundness(ImageView imageView,1)">42         ImageOptions imageOptions = 43 44                 .setCircular(显示圆形,半径根据控件控制
45                 .setCrop()
46                 .setIgnoreGif(48 52 }
图片地址
 2 String urlx="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1546085784363&di=8ab50ca92e77dcc09ef658b636872f51&imgtype=0&src=http%3A%2F%2Fi0.bbs.fd.zol-img.com.cn%2Ft_s800x5000%2Fg5%2FM00%2F0D%2F05%2FChMkJlnHskGIC8gjAAJBAWB0pxwAAgwNgI_jqMAAkEZ946.jpg"找到imgview控件
 5 main_img1=(ImageView)findViewById(R.id.main_img1);
传递参数,显示图片到控件上
ShowImage.displaydDfault(main_img1,urlx);
 8 
 9 main_img2=(ImageView)findViewById(R.id.main_img2);
10 ShowImage.displayCutR(main_img2,3011 
12 
13 main_img3=(ImageView)findViewById(R.id.main_img3);
14 ShowImage.displayRoundness(main_img3,urlx);

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_65241.html