您的位置:首页 > 其它

使用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;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: