Xamarin Visual Studioで、Picassoを使うサンプルと、
GridViewを使うサンプルを作ったので、組み合わせて、
Picassoを使ってGridViewに画像を表示してみます。
スポンサーリンク
表示する画像は、GridViewのサンプルを作る時に使用した画像を使います。
まずは、「PicassoGridViewTest」というプロジェクトを作成

ツール>Nugetパッケージマネージャー>パッケージマネージャーコンソール
「Install-Package Square.Picasso」と入力しEnterキーを押すことで、Picassoを使うことができるようにしておきます。
Main.axmlのコード
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center" />
MainActivity.csのコード
using Android.App;
using Android.Widget;
using Android.OS;
namespace PicassoGridViewTest
{
[Activity(Label = "PicassoGridViewTest", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
var gridview = FindViewById<GridView>(Resource.Id.gridview);
string[] urlList = new string[9];
urlList[0] = "https://became-free.com/wp-content/uploads/2017/04/sample_0.jpg";
urlList[1] = "https://became-free.com/wp-content/uploads/2017/04/sample_1.jpg";
urlList[2] = "https://became-free.com/wp-content/uploads/2017/04/sample_2.jpg";
urlList[3] = "https://became-free.com/wp-content/uploads/2017/04/sample_3.jpg";
urlList[4] = "https://became-free.com/wp-content/uploads/2017/04/sample_4.jpg";
urlList[5] = "https://became-free.com/wp-content/uploads/2017/04/sample_5.jpg";
urlList[6] = "https://became-free.com/wp-content/uploads/2017/04/sample_6.jpg";
urlList[7] = "https://became-free.com/wp-content/uploads/2017/04/sample_7.jpg";
gridview.Adapter = new PicassoImageAdapter(this, urlList);
}
}
}
Picassoで画像を表示するアダプターを作成します。
ファイル名は、「PicassoImageAdapter.cs 」にしました。
PicassoImageAdapter.csのコード
using Android.Content;
using Android.Views;
using Android.Widget;
using Square.Picasso;
public class PicassoImageAdapter : BaseAdapter
{
private string[] urlList;
Context context;
public PicassoImageAdapter(Context c, string[] urlList)
{
context = c;
this.urlList = urlList;
}
public override int Count
{
get { return urlList.Length; }
}
public override Java.Lang.Object GetItem(int position)
{
return null;
}
public override long GetItemId(int position)
{
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public override View GetView(int position, View convertView, ViewGroup parent)
{
ImageView imageView;
if (convertView == null)
{ // if it's not recycled, initialize some attributes
imageView = new ImageView(context);
imageView.LayoutParameters = new GridView.LayoutParams(85, 85);
imageView.SetScaleType(ImageView.ScaleType.CenterCrop);
imageView.SetPadding(8, 8, 8, 8);
}
else
{
imageView = (ImageView)convertView;
}
Picasso.With(context).Load(urlList[position]).Into(imageView);
return imageView;
}
}
AndroidマニフェストでINTERNETのパーミッションを設定します。

できました。
