「Android/ListView/カスタム/画像」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==画像サンプル== activity_main.xmlに以下を追加 <ListView android:id="@+id/sample_listview" android:layout_width="match_parent" and...」) |
|||
| 行61: | 行61: | ||
public String getTitle() { | public String getTitle() { | ||
return mTitle; | return mTitle; | ||
| + | } | ||
| + | } | ||
| + | </pre> | ||
| + | SampleListAdapter.java | ||
| + | <pre> | ||
| + | import android.content.Context; | ||
| + | import android.util.Log; | ||
| + | import android.view.LayoutInflater; | ||
| + | import android.view.View; | ||
| + | import android.view.ViewGroup; | ||
| + | import android.widget.ArrayAdapter; | ||
| + | import java.util.List; | ||
| + | public class SampleListAdapter extends ArrayAdapter<SampleListItem> { | ||
| + | private int mResource; | ||
| + | private List<SampleListItem> mItems; | ||
| + | private LayoutInflater mInflater; | ||
| + | public SampleListAdapter(Context context, int resource, List<SampleListItem> items) { | ||
| + | super(context, resource, items); | ||
| + | mResource = resource; | ||
| + | mItems = items; | ||
| + | mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); | ||
| + | } | ||
| + | @Override | ||
| + | public View getView(int position, View convertView, ViewGroup parent) { | ||
| + | View view; | ||
| + | if (convertView != null) { | ||
| + | view = convertView; | ||
| + | } | ||
| + | else { | ||
| + | view = mInflater.inflate(mResource, null); | ||
| + | } | ||
| + | SampleListItem item = mItems.get(position); | ||
| + | ImageView thumbnail = (ImageView)view.findViewById(R.id.thumbnail); | ||
| + | thumbnail.setImageBitmap(item.getThumbnail()); | ||
| + | TextView title = (TextView)view.findViewById(R.id.title); | ||
| + | title.setText(item.getTitle()); | ||
| + | return view; | ||
} | } | ||
} | } | ||
2018年12月14日 (金) 14:35時点における版
画像サンプル
activity_main.xmlに以下を追加
<ListView
android:id="@+id/sample_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
samplelist_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/thumbnail"
android:layout_width="70dp"
android:layout_height="70dp"
android:padding="3dp" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:textColor="#000"
android:padding="5dp"
android:gravity="center_vertical"
android:maxLines="1"
android:text="Sample Text"/>
</LinearLayout>
SampleListItem.java
import android.graphics.Bitmap;
public class SampleListItem {
private Bitmap mThumbnail = null;
private String mTitle = null;
public SampleListItem() {};
public SampleListItem(Bitmap thumbnail, String title) {
mThumbnail = thumbnail;
mTitle = title;
}
public void setThumbnail(Bitmap thumbnail) {
mThumbnail = thumbnail;
}
public void setmTitle(String title) {
mTitle = title;
}
public Bitmap getThumbnail() {
return mThumbnail;
}
public String getTitle() {
return mTitle;
}
}
SampleListAdapter.java
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import java.util.List;
public class SampleListAdapter extends ArrayAdapter<SampleListItem> {
private int mResource;
private List<SampleListItem> mItems;
private LayoutInflater mInflater;
public SampleListAdapter(Context context, int resource, List<SampleListItem> items) {
super(context, resource, items);
mResource = resource;
mItems = items;
mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView != null) {
view = convertView;
}
else {
view = mInflater.inflate(mResource, null);
}
SampleListItem item = mItems.get(position);
ImageView thumbnail = (ImageView)view.findViewById(R.id.thumbnail);
thumbnail.setImageBitmap(item.getThumbnail());
TextView title = (TextView)view.findViewById(R.id.title);
title.setText(item.getTitle());
return view;
}
}
MainActivity.javaのonCreateに追加
ListView listView = (ListView)findViewById(R.id.sample_listview);
ArrayList<SampleListItem> listItems = new ArrayList<>();
for (int i = 0; i < 4; i++) {
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
SampleListItem item = new SampleListItem(bmp, "sample text No. " + String.valueOf(i));
listItems.add(item);
}
SampleListAdapter adapter = new SampleListAdapter(this, R.layout.samplelist_item, listItems);
listView.setAdapter(adapter);
