使用Picasso加载网页图片到RecyclerView
2016-05-27 21:49
405 查看
效果图
添加依赖项
compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:recyclerview-v7:22.2.1' compile 'com.android.support:cardview-v7:22.2.1' compile 'com.squareup.picasso:picasso:2.3.2' compile 'com.android.support:design:22.2.1'
布局
item_layout.xml<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" card_view:cardCornerRadius="5dp"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginLeft="20dp" android:layout_marginBottom="20dp" > <ImageView android:id="@+id/android_image" android:layout_width="120dp" android:layout_height="60dp" android:layout_marginRight="20dp"/> <TextView android:id="@+id/android_version" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:textStyle="bold" android:layout_centerVertical="true" android:layout_toRightOf="@id/android_image" /> </RelativeLayout> </android.support.v7.widget.CardView>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.design.widget.CoordinatorLayout android:layout_height="match_parent" android:layout_width="match_parent" android:fitsSystemWindows="true"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical"> </android.support.v7.widget.RecyclerView> </android.support.design.widget.CoordinatorLayout> </LinearLayout>
自定义RecyclerView适配器
package com.example.demo.opencvtest; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.squareup.picasso.Picasso; import java.util.ArrayList; /** * 用于存储列表项中的数据类型 */ public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> { public Context mContext; public ArrayList<AndroidVersion> mAndroidVersionsList; public DataAdapter(Context context,ArrayList<AndroidVersion> androidVersionsList){ mContext = context; mAndroidVersionsList = androidVersionsList; } @Override public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout,parent,false); return new ViewHolder(view); } @Override public void onBindViewHolder(DataAdapter.ViewHolder holder, int position) { Picasso.with(mContext).load(mAndroidVersionsList.get(position).getAndroid_image_url()).resize(120,60).into(holder.imageView); holder.textView.setText(mAndroidVersionsList.get(position).getAndroid_version_name()); } @Override public int getItemCount() { return mAndroidVersionsList.size(); } public class ViewHolder extends RecyclerView.ViewHolder { public ImageView imageView; public TextView textView; public ViewHolder(View view) { super(view); imageView = (ImageView) view.findViewById(R.id.android_image); textView = (TextView) view.findViewById(R.id.android_version); } } }
Activity
package com.example.demo.opencvtest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import java.util.ArrayList; /** * 主界面程序 */ public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private ArrayList<AndroidVersion> androidVersionsList; private DataAdapter adapter; private final String android_version_names[] = { "Donut", "Eclair", "Froyo", "Gingerbread", "Honeycomb", "Ice Cream Sandwich", "Jelly Bean", "KitKat", "Lollipop", "Marshmallow" }; private final String android_image_urls[] = { "https://img-blog.csdn.net/20160527205448521", "https://img-blog.csdn.net/20160527205516475", "https://img-blog.csdn.net/20160527205804527", "https://img-blog.csdn.net/20160527205831152", "https://img-blog.csdn.net/20160527205912200", "https://img-blog.csdn.net/20160527205946793", "https://img-blog.csdn.net/20160527210011184", "https://img-blog.csdn.net/20160527210026200", "https://img-blog.csdn.net/20160527210039778", "https://img-blog.csdn.net/20160527210053919" }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = (RecyclerView) findViewById(R.id.recycler_view); recyclerView.setHasFixedSize(true); RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext()); recyclerView.setLayoutManager(layoutManager); androidVersionsList = initData(); adapter = new DataAdapter(getApplicationContext(),androidVersionsList); recyclerView.setAdapter(adapter); } private ArrayList<AndroidVersion> initData() { ArrayList<AndroidVersion> androidVersions = new ArrayList<>(); for(int i=0; i<android_version_names.length; ++i){ AndroidVersion androidVersion = new AndroidVersion(); androidVersion.setAndroid_image_url(android_image_urls[i]); androidVersion.setAndroid_version_name(android_version_names[i]); androidVersions.add(androidVersion); } return androidVersions; } }
相关文章推荐
- 拖动 tableView 来缩放顶部图片
- poj 2245 Lotto
- 改进的KMP算法
- Java设计模式之原型模式
- 《OpenCV图像处理编程实例》-正式上架
- 机器学习中使用的神经网络第十讲笔记
- 前端学习总结(十七)React Native——移动开发的未来趋势
- nyoj1255 Rectangles(第七届河南省程序设计大赛)
- 使用adb shell 进入手机修改文件的权限
- 第二阶段冲刺第三天
- SQL 查询45题
- MFC编程 char*和CString两种类型的互相转换
- winform写的搜索文件目录小程序
- Java并发线程--多线程的创建
- spinner用法
- 函数的调用及堆栈
- HDU 5690 ALL X
- 练习三 Problem J
- Linux Shell编程二:sed&awk
- 一二三级联动