「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);