xUtils3下载图片

原创 2016年06月01日 11:21:29

这里只对下载图片做操作,使用工具是AndroidStudio
xUtils3的github网址

https://github.com/wyouflf/xUtils3

1、添加语句

compile 'org.xutils:xutils:3.3.34'

2、添加权限

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

3、在自己的application中的onCreate方法里

x.Ext.init(this);

4、demo的目录结构
这里写图片描述

5、布局文件:

<?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:id="@+id/tv_download_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="50dp"
        android:text="下载图片"
        android:textSize="25sp"/>

    <TextView
        android:id="@+id/tv_delete_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="50dp"
        android:text="删除图片"
        android:textSize="25sp"
        />


</LinearLayout>

6、MyCallBack代码

package com.chen.demo;

import org.xutils.common.Callback;

public class MyCallBack<ResultType> implements Callback.CommonCallback<ResultType> {

    @Override
    public void onSuccess(ResultType result) {
        //根据需求进行请求成功的逻辑处理
    }

    @Override
    public void onError(Throwable ex, boolean isOnCallback) {
        //根据需求进行请求网络失败的逻辑处理
    }

    @Override
    public void onCancelled(CancelledException cex) {

    }

    @Override
    public void onFinished() {

    }
}

7、Util

package com.chen.demo;

import android.content.Context;
import android.os.Environment;
import android.widget.Toast;

import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;

import java.text.SimpleDateFormat;

public class Util {

    public static final String IMAGE_SDCARD_MADER = Environment
            .getExternalStorageDirectory()
            + "/chen/img/";

    /**
     * 下载文件
     */
    public static <T> Callback.Cancelable DownLoadFile(String url, String filepath, Callback.CommonCallback<T> callback) {
        RequestParams params = new RequestParams(url);
        //设置断点续传
        params.setAutoResume(true);
        params.setSaveFilePath(filepath);
        Callback.Cancelable cancelable = x.http().get(params, callback);
        return cancelable;
    }


    /**
     * 获取声音文件名字
     *
     * @return 假如当前录制声音时间是2016年6月1日11点30分30秒。得到的文件名字就是20160601113030.这样保证文件名的唯一性
     */
    public static String geFileName() {
        long getNowTimeLong = System.currentTimeMillis();
        SimpleDateFormat time = new SimpleDateFormat("yyyyMMddHHmmss");
        String result = time.format(getNowTimeLong);
        return result;
    }

    private static Toast toast;

    /**
     * 单例吐司
     */
    public static void showToast(Context context, String msg) {
        if (toast == null) {
            toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
        }
        toast.setText(msg);
        toast.show();
    }
}

8、MainActivity

package com.chen.demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.TextView;

import java.io.File;

public class MainActivity extends Activity {

    /**
     * 下载图片按钮
     */
    private TextView tv_download_img;

    /**
     * 删除图片
     */
    private TextView tv_delete_img;

    /**
     * 文件下载地址
     */
    String downloadUrl = "";

    /**
     * 下载文件的保存位置
     */
    String saveFilePath = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        downloadUrl = "http://images-shichai.test.cnfol.com/original/201606/4_1464745054_1.jpg";

        saveFilePath = Util.IMAGE_SDCARD_MADER + Util.geFileName() + "chen.png";

        tv_download_img = (TextView) findViewById(R.id.tv_download_img);

        tv_delete_img = (TextView) findViewById(R.id.tv_delete_img);

        tv_download_img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Util.showToast(MainActivity.this, "下载");
                downLoadFile();
            }
        });

        tv_delete_img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                File f_delete = new File(saveFilePath);
                f_delete.delete();
                Util.showToast(MainActivity.this, "图片删除成功");
            }
        });
    }


    /**
     * 下载文件
     */
    private void downLoadFile() {

        Util.DownLoadFile(downloadUrl, saveFilePath, new MyCallBack<File>() {

            @Override
            public void onSuccess(File result) {
                super.onSuccess(result);
                Util.showToast(MainActivity.this, "下载成功");
            }

            @Override
            public void onError(Throwable ex, boolean isOnCallback) {
                super.onError(ex, isOnCallback);
                Util.showToast(MainActivity.this, "下载失败");
            }

        });
    }
}

xutils加载图片设置示例

...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

xUtils图片本地缓存使用

首先创建BitmapUtils时使用带有缓存路径的构造创建 如果要对文件大小进行限制 可以使用三个参数的构造 bitmapUtils = new BitmapUtils(this, cachePat...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

【Android】【xUtils3网络下载图片的简单操作】

直接看代码,非常简单的实现,很实用! 这是本人是实际应用时,写的一个方法,你可以根据自己的实际情况去改改 我用到三个参数, context 就不用多少了 ulr是文件在网络上的绝对路径 fi...

xUtils图片本地缓存使用

String cachePath = "" bitmapUtils = new BitmapUtils(this, cachePath); bitmapUtils.configDiskCa...

Android 最火的快速开发框架XUtils

最近搜了一些框架供初学者学习,比较了一下XUtils是目前git上比较活跃 功能比较完善的一个框架,是基于afinal开发的,比afinal稳定性提高了不少,下面是介绍: 鉴于大家的热情,我又写了一...
  • dj0379
  • dj0379
  • 2014年08月03日 11:54
  • 319686

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

XUtils开源项目---BitmapUtils图片处理

项目地址项目地址。。。。。。。 最近搜了XUtils进行学习,该开源库是目前git上比较活跃 功能比较完善的一个框架,是基于afinal开发的,比afinal稳定性提高了不少,该框架包含 Db...

XUtils网络请求,图片加载(适合新手)。

Xutils是最近比较好的开源框架,功能强大,我在使用了几个月之后总结了一些使用方法,希望对大家有帮助。一.网络请求 1. get请求的方法: public static Cal...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xUtils3下载图片
举报原因:
原因补充:

(最多只允许输入30个字)