Image-Loader加载图片 & PhotoView(手势识别) 的使用— Android项目实战—新闻APP07

项目实战:新闻APPday07学习笔记

  • day07
    • 内容
      • 1. Image-Loader加载图片
      • 2. PhotoView(手势识别)
      • 3. okHttp
      • 4. ShareSDK分享添加
    • 盲区
  • 其他笔记
    • 新闻APP其他笔记
    • 购物商城APP学习笔记

不否认努力,继续加油!
学习整理重点、盲区,笔记如下:干干巴巴,麻麻赖赖,一点都不圆润……

day07

内容

1. Image-Loader加载图片

  1. 下载;运行案例,熟悉了解案例;关联库

  2. 初始化,Application

    public static void initImageLoader(Context context) {
            ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);
            config.threadPriority(Thread.NORM_PRIORITY - 2);
            config.denyCacheImageMultipleSizesInMemory();
            config.diskCacheFileNameGenerator(new Md5FileNameGenerator());
            config.diskCacheSize(50 * 1024 * 1024); // 50 MiB
            config.tasksProcessingOrder(QueueProcessingType.LIFO);
            config.writeDebugLogs(); // Remove for release app
            ImageLoader.getInstance().init(config.build());
    }
    
  3. 用ImageLoader请求网络图片

    配置 ImageLoader

     options = new DisplayImageOptions.Builder()
    			.showImageOnLoading(R.drawable.ic_stub)
    			.showImageForEmptyUri(R.drawable.ic_empty)
    			.showImageOnFail(R.drawable.ic_error)
    			.cacheInMemory(true)
    			.cacheOnDisk(true)
    			.considerExifParams(true)
    			.bitmapConfig(Bitmap.Config.RGB_565)
    			.displayer(new RoundedBitmapDisplayer(10))//设置矩形圆角
    			.build();
    

    在适配器的方法中请求图片ImageLoader.getInstance().displayImage(IMAGE_URLS[position], imageView, options);

2. PhotoView(手势识别)

  1. 实现可以点开图片查看,并且可以双击放大;
  2. 下载并了解案例;添加依赖并集成到项目中图组;

3. okHttp

  1. 要注意看其封装后的代码;

  2. 要会服务器的搭建;自己的TomCat上要有服务器,并且可以上传下载;

  3. okhttp-utils大文件下载

    public void downloadFile(View view) {
        String url = "http://192.168.21.165:8080/yellow.mp4";
        OkHttpUtils.get().url(url).build().execute(new FileCallBack(Environment.getExternalStorageDirectory().getAbsolutePath(), "yellow.mp4") {
            @Override
            public void onBefore(Request request, int id) {
            }
            @Override
            public void inProgress(float progress, long total, int id) {
                mProgressBar.setProgress((int) (100 * progress));
                Log.e(TAG, "inProgress :" + (int) (100 * progress));
            }
            @Override
            public void onError(Call call, Exception e, int id) {
                Log.e(TAG, "onError :" + e.getMessage());
            }
            @Override
            public void onResponse(File file, int id) {
                Log.e(TAG, "onResponse :" + file.getAbsolutePath());
            }
        });
    }
    
  4. okhttp-utils多文件上传/下载

    public void uploadFile(View view) {
        //图片从哪里上传
        File file = new File(Environment.getExternalStorageDirectory(), "1.jpg");
        if (!file.exists()) {
            Toast.makeText(MainActivity.this, "文件不存在,请修改文件路径", Toast.LENGTH_SHORT).show();
            return;
        }
        Map<String, String> params = new HashMap<>();
        params.put("username", "atguigu");
        params.put("password", "123");
        Map<String, String> headers = new HashMap<>();
        headers.put("APP-Key", "APP-Secret222");
        headers.put("APP-Secret", "APP-Secret111");
        String url = "http://192.168.21.165:8080/FileUpload/FileUploadServlet";
        OkHttpUtils.post()//
                .addFile("mFile", "1.jpg", file)//
                .url(url)//
                .params(params)//
                .headers(headers)//
                .build()//
                .execute(new MyStringCallback());
    }
    public void multiFileUpload(View view) {
        File file = new File(Environment.getExternalStorageDirectory(), "2.jpg");
        File file2 = new File(Environment.getExternalStorageDirectory(), "2.txt");
        if (!file.exists()) {
            Toast.makeText(MainActivity.this, "文件不存在,请修改文件路径", Toast.LENGTH_SHORT).show();
            return;
        }
        Map<String, String> params = new HashMap<>();
        params.put("username", "atguigu");
        params.put("password", "123");
        String url = "http://192.168.21.165:8080/FileUpload/FileUploadServlet";
        OkHttpUtils.post()//
                .addFile("mFile", "messenger_01.jpg", file)//
                .addFile("mFile", "test1.txt", file2)//
                .url(url)
                .params(params)//
                .build()//
                .execute(new MyStringCallback());
    }
    

4. ShareSDK分享添加

  1. ShareSDK下载;根据文档快速集成;
  2. 实现分享到其他平台的功能;

盲区

  1. 声明:本博客根据尚硅谷项目实战: 北京新闻.学习整理;
  2. 本项目涉及到的依赖多是依赖项目,导致体积比较大,并且所涉及到的,配置在本地 tomcat 上的资源有足足3.6G,所以代码没有上传 Github;
  3. 最后用一张图片总结一下这坎坷的学习经过吧!
    Image-Loader加载图片 & PhotoView(手势识别) 的使用— Android项目实战—新闻APP07_第1张图片
    Image-Loader加载图片 & PhotoView(手势识别) 的使用— Android项目实战—新闻APP07_第2张图片

其他笔记

新闻APP其他笔记

  1. day01
    第一天的学习笔记: 新闻APP01.
  2. day02
    第二天的学习笔记: 新闻APP02.
  3. day03
    第三天的学习笔记: 新闻APP03.
  4. day04
    第四天的学习笔记: 新闻APP04.
  5. day05
    第五天的学习笔记: 新闻APP05.
  6. day06
    第六天的学习笔记:新闻APP06.

购物商城APP学习笔记

购物商城APP学习笔记:购物商城

你可能感兴趣的:(Android学习总结)