当前位置: 首页 > news >正文

Android瀑布流

以下是一个简单的示例代码,演示如何在Android Studio中解析指定网页的图片URL,并展示在错乱瀑布流布局中:

1. 添加网络权限:在项目的AndroidManifest.xml文件中添加以下权限:

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

2. 创建一个新的Activity,并在XML布局文件中添加一个RecyclerView组件:

<androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recyclerView"android:layout_width="match_parent"android:layout_height="match_parent" />

3. 创建一个数据模型类ImageModel来存储图片URL:

public class ImageModel {private String imageUrl;public ImageModel(String imageUrl) {this.imageUrl = imageUrl;}public String getImageUrl() {return imageUrl;}
}

4. 创建一个适配器类ImageAdapter来加载图片URL并展示在瀑布流布局中:

public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder> {private List<ImageModel> imageList;private Context context;public ImageAdapter(List<ImageModel> imageList, Context context) {this.imageList = imageList;this.context = context;}@NonNull@Overridepublic ImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View view = LayoutInflater.from(context).inflate(R.layout.item_image, parent, false);return new ImageViewHolder(view);}@Overridepublic void onBindViewHolder(@NonNull ImageViewHolder holder, int position) {ImageModel imageModel = imageList.get(position);String imageUrl = imageModel.getImageUrl();Glide.with(context).load(imageUrl).centerCrop().into(holder.imageView);}@Overridepublic int getItemCount() {return imageList.size();}public class ImageViewHolder extends RecyclerView.ViewHolder {ImageView imageView;public ImageViewHolder(@NonNull View itemView) {super(itemView);imageView = itemView.findViewById(R.id.imageView);}}
}

5. 在Activity中发起HTTP请求,并解析返回的数据:

public class MainActivity extends AppCompatActivity {private RecyclerView recyclerView;private ImageAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);recyclerView = findViewById(R.id.recyclerView);recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));List<ImageModel> imageList = new ArrayList<>();adapter = new ImageAdapter(imageList, this);recyclerView.setAdapter(adapter);// 发起HTTP请求并解析数据new ParseDataTask().execute();}private class ParseDataTask extends AsyncTask<Void, Void, List<ImageModel>> {@Overrideprotected List<ImageModel> doInBackground(Void... voids) {List<ImageModel> imageList = new ArrayList<>();try {Document document = J
http://www.lryc.cn/news/134546.html

相关文章:

  • Ubuntu搭建CT_ICP里程计的环境暨CT-ICP部署
  • 微信小程序全局事件订阅eventBus
  • 华为云cce发布若依前后分离版:2.nginx镜像操作
  • TCP协议报文结构
  • Day14-2-NodeJS后端开发流程
  • 计算机竞赛 基于CNN实现谣言检测 - python 深度学习 机器学习
  • 框架(Git基础详解及Git在idea中集成步骤)
  • 0基础学习VR全景平台篇 第88篇:智慧眼-成员管理
  • DSO 系列文章(2)——DSO点帧管理策略
  • 无需公网IP——搭建web站点
  • swift 项目集成友盟推送
  • Unity之用Transform 数组加多个空物体-->简单地控制物体按照指定路线自动行驶
  • 交换机生成树STP
  • 3.微服务概述
  • cloud_mall-notes02
  • 前端轻松实现文件预览(pdf、excel、word、图片)
  • docker服务器、以及容器设置自动启动
  • k8s集群证书过期后,如何更新k8s证书
  • 5.6.webrtc三大线程
  • @Slf4j报错:Not generating field log: A field with same name already exists
  • 乖宝宠物上市,能否打破外资承包中国宠物口粮的现实
  • Ubuntu安装Apache+Php
  • open cv学习 (四)图像的几何变换
  • matlab 检测点云中指定尺寸的矩形平面
  • HCIP——STP配置案例
  • JCTools Mpsc源码详解(二) MpscArrayQueue
  • 前端面试的性能优化部分(13)每天10个小知识点
  • C++ STL无序关联式容器(详解)
  • Python爬虫解析工具之xpath使用详解
  • Linux防火墙报错:Failed to start firewalld.service Unit is masked