iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android&在recycleview中使用xutils加载网络图片
  • 597
分享到

Android&在recycleview中使用xutils加载网络图片

网络图图片xutilsAndroid 2022-06-06 14:06:25 597人浏览 薄情痞子
摘要

在recycleview中使用xutils加载网络图片,关于xutils 的使用可以在这篇博客去学习,先看看效果图 如果不需要则将带Refr

在recycleview中使用xutils加载网络图片,关于xutils
的使用可以在这篇博客去学习,先看看效果图

如果不需要则将带Refreshlayout代码删去
在这里插入图片描述

import Androidx.annotation.NonNull;
import androidx.annotation.Requiresapi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.Google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import org.xutils.common.Callback;
import org.xutils.common.util.DensityUtil;
import org.xutils.Http.RequestParams;
import org.xutils.image.ImageOptions;
import org.xutils.view.annotation.ContentView;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;
import java.util.ArrayList;
import java.util.List;
@ContentView(R.layout.activity_main4_1)
public class Main4Activity_1 extends AppCompatActivity {
    RecyclerView recyclerView;
    MyAdapter myAdapter;
    Message message;
    @ViewInject(R.id.textView33)
    TextView textView3_1;
    @ViewInject(R.id.textView333)
    TextView textView3_2;
    @ViewInject(R.id.textView3333)
    TextView textView3_3;
    Listlist;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4_1);
        x.Ext.init(getApplication());
        x.Ext.setDebug(BuildConfig.DEBUG);// 是否输出debug日志, 开启debug会影响性能.
        x.view().inject(Main4Activity_1.this);//没有用到view注解可以先不用
	//网络连接
        RequestParams params = new RequestParams("http://148.70.46.9/chatlist");
        x.http().get(params, new Callback.CommonCallback() {
            @Override
            public void onSuccess(String result) {//主线程
	//解析JSON,获得数据
                Gson gson=new Gson();
                 message=gson.fromjson(result,Message.class);
                Log.i("Main", "onSuccess: "+message.chatlist.get(0).name);
//加载图片
                CircleImageView  headimg3 =findViewById(R.id.headimg);
                ImageOptions imageOptions;
                imageOptions = new ImageOptions.Builder()
                        .setSize(DensityUtil.dip2px(120), DensityUtil.dip2px(120))
                        .setRadius(DensityUtil.dip2px(5))
// 如果ImageView的大小不是定义为wrap_content, 不要crop.
                        .setCrop(true) // 很多时候设置了合适的scaleType也不需要它.
// 加载中或错误图片的ScaleType
//.setPlaceholderScaleType(ImageView.ScaleType.MATRIX)
                        .setImageScaleType(ImageView.ScaleType.CENTER_CROP)
                        .setLoadingDrawableId(R.mipmap.ic_launcher)
                        .setFailureDrawableId(R.mipmap.ic_launcher)
                        .build();
                x.image().bind(headimg3, message.headimg, imageOptions);//一般使用到这就可以
//进行recycleview的设置与实现
                myAdapter = new MyAdapter();
                recyclerView =findViewById(R.id.recycleview);
                recyclerView.setAdapter(new MyAdapter());
                recyclerView.setLayoutManager(new LinearLayoutManager(Main4Activity_1.this));
            }
            @Override
            public void onError(Throwable ex, boolean isOnCallback) {
                Log.i("Main", "onError: "+ex.getMessage());
            }
            @Override
            public void onCancelled(CancelledException cex) {
            }
            @Override
            public void onFinished() {
            }
        });
        recyclerView =findViewById(R.id.recycleview);
        RefreshLayout refreshLayout = findViewById(R.id.refreshLayout);
        refreshLayout.setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh(RefreshLayout refreshlayout) {
                myAdapter.notifyDataSetChanged();
                refreshlayout.finishRefresh(2000);//传入false表示刷新失败
            }
        });
        refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
            @Override
            public void onLoadMore(RefreshLayout refreshlayout) {
                myAdapter.notifyDataSetChanged();
                refreshlayout.finishLoadMore(2000);//传入false表示加载失败
            }
        });
    }
    public  class MyViewHolder extends  RecyclerView.ViewHolder{//用来包装每个子项的布局信息
        public TextView textView1;
        public TextView textView2;
        public TextView textView3;
        public  CircleImageView headimag;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            textView1 = itemView.findViewById(R.id.textView33);
            textView2 = itemView.findViewById(R.id.textView333);
            textView3 = itemView.findViewById(R.id.textView3333);
            headimag=itemView.findViewById(R.id.headimg3);
        }
    }
    public class  MyAdapter extends RecyclerView.Adapter{
//用来配合recycleview进行加载子项以及填充子项的数据
        @NonNull
        @Override
        public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(Main4Activity_1.this).inflate(R.layout.messages,parent,false);
            MyViewHolder myViewHolder = new MyViewHolder(view);
            return myViewHolder;
        }
        @Override
        public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {//在这里进行子项的文本图片数据填充
            holder.textView1.setText(message.chatlist.get(position).name);
            holder.textView2.setText(message.chatlist.get(position).content);
            holder.textView3.setText(message.chatlist.get(position).time);
            ImageOptions imageOptions;
            imageOptions = new ImageOptions.Builder()
                    .setSize(DensityUtil.dip2px(120), DensityUtil.dip2px(120))
                    .setRadius(DensityUtil.dip2px(5))
// 如果ImageView的大小不是定义为wrap_content, 不要crop.
                    .setCrop(true) // 很多时候设置了合适的scaleType也不需要它.
// 加载中或错误图片的ScaleType
//.setPlaceholderScaleType(ImageView.ScaleType.MATRIX)
                    .setImageScaleType(ImageView.ScaleType.CENTER_CROP)
                    .setLoadingDrawableId(R.mipmap.ic_launcher)
                    .setFailureDrawableId(R.mipmap.ic_launcher)
                    .build();
            x.image().bind(holder.headimag, message.chatlist.get(position).head, imageOptions);//一般使用到这就可以
        }
        @Override
        public int getItemCount() {//返回子项的数目,即加载多少列表项
            return message.chatlist.size();
        }
    }
 }

作者:唐傘皮


--结束END--

本文标题: Android&在recycleview中使用xutils加载网络图片

本文链接: https://www.lsjlt.com/news/29657.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Glide图片加载框架怎么在Android应用中使用
    这篇文章将为大家详细讲解有关Glide图片加载框架怎么在Android应用中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。简介Glide是一款图片加载框架,可以在Android平台上以简...
    99+
    2023-05-31
    android glide roi
  • 如何在Android开发中利用Glide加载图片
    这期内容当中小编将会给大家带来有关如何在Android开发中利用Glide加载图片,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。添加依赖:compile 'com.github.bump...
    99+
    2023-05-31
    glide android roi
  • Android中有哪些常用的图片加载库
    Android中有哪些常用的图片加载库?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Universal Image Loader:ImageLoader是比较老的框架,一个强大...
    99+
    2023-05-31
    android 中有 roi
  • Android 图片加载库之Coil的详解与使用
    一、介绍         在Android,资源的呈现主要有三大形式:文字、图片、视频。图片有分为本地资源和网络资源。 网络资源需要通过下载然后绑定到ImageView中。         在前期我们使用的图片加载框架如:picasso、...
    99+
    2023-10-02
    android kotlin Coil
  • String项目中 加载网络img图片失败怎么解决
    这篇文章将为大家详细讲解有关String项目中 加载网络img图片失败怎么解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 概述当从网络加载图片失败 希望显示默认图img 标签有个 o...
    99+
    2023-05-31
    string 目中
  • Android图片加载框架Coil的详细使用总结
    目录简介简单使用高斯模糊圆角圆形灰色变换 GrayscaleTransformationGif监听下载过程取消下载替换 okhttp 实例自定义Coil 源码分析总结简介 Coil ...
    99+
    2024-04-02
  • Android中怎么使用Glide加载图像
    今天就跟大家聊聊有关Android中怎么使用Glide加载图像,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在进入 Glide 示例之前,我们应该知道什么是 glide,Glide ...
    99+
    2023-06-28
  • webpack中css加载和图片加载功能怎么使用
    这篇文章主要介绍“webpack中css加载和图片加载功能怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“webpack中css加载和图片加载功能怎么使用”文章能帮助大家解决问题。css加载器...
    99+
    2023-07-05
  • Android中如何使用Glide加载图像
    在进入 Glide 示例之前,我们应该知道什么是 glide,Glide 是 muyangmin 开发的一个图像处理库。使用 glide 库,我们可以显示图像、解码图像、缓存图像、动...
    99+
    2024-04-02
  • 怎么在Android中实现一个网络图片浏览器
    这篇文章给大家介绍怎么在Android中实现一个网络图片浏览器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、创建一个“网络图片浏览器的应用程序”,并设计用户交互界面,“网络图片浏览器”对应的布局文件(activit...
    99+
    2023-05-31
    android roi %d
  • Android官推kotlin-first图片加载库Coil的使用方法
    这篇文章给大家分享的是有关Android官推kotlin-first图片加载库Coil的使用方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Coil 是一个非常年轻的图片加载库,在 2020 年 10 月 22...
    99+
    2023-06-14
  • Android应用中怎么对超大的图片进行加载
    本篇文章为大家展示了Android应用中怎么对超大的图片进行加载,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 1.Bitmap的使用- 2.Android手机中加载图片的原理   有的时...
    99+
    2023-05-31
    android roi
  • Android 官推 kotlin-first 的图片加载库——Coil的使用入门
    目录一、基本使用二、常用的 API ImageLoader ImageRequest Disposable 图片变换 三、功能拓展 Interceptors Mappers、Fetc...
    99+
    2024-04-02
  • vue3怎么使用@vueuse/core中的图片懒加载
    这篇文章主要介绍“vue3怎么使用@vueuse/core中的图片懒加载”,在日常操作中,相信很多人在vue3怎么使用@vueuse/core中的图片懒加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue...
    99+
    2023-07-05
  • Android应用中怎么实现一个网络加载时功能
    这篇文章将为大家详细讲解有关Android应用中怎么实现一个网络加载时功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。效果预览简要说明现在android程序网络请求操作是必不可少的,然而拥...
    99+
    2023-05-31
    android roi
  • Android在ViewPager中如何使用Fragment的懒加载
    这篇文章给大家分享的是有关Android在ViewPager中如何使用Fragment的懒加载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。我们先看一下效果:首先,我们要知道什么是懒加载:懒加载,就是先初始化控件...
    99+
    2023-05-31
    android fragment viewpager
  • vue中如何使用图片懒加载vue-lazyload插件
    这篇文章给大家分享的是有关vue中如何使用图片懒加载vue-lazyload插件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:说明当网络请求比较慢的时候,提前给这张图片...
    99+
    2024-04-02
  • web开发中如何使用图片懒加载插件
    这篇文章主要介绍了web开发中如何使用图片懒加载插件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。示例  var thr...
    99+
    2024-04-02
  • Android入门之Glide显示网络图片高版本的使用详解
    目录开篇项目整体情况Nginx中hosting物理小图片存储目录Nginx配置Glide组件使用gradle文件中的依赖MyAppGlideModule.java开篇 一旦我们进入了...
    99+
    2023-02-06
    Android Glide显示网络图片 Android Glide显示图片 Android Glide
  • vue3中使用@vueuse/core中的图片懒加载案例详解
    点击进入vueuse官网 1、首先安装 npm i @vueuse/core 2、新建一个helloworld.js文件,内容如下: import { useIntersectio...
    99+
    2023-03-19
    vue3图片懒加载 vue3 @vueuse/core
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作