Android GridView サンプル2
AndroAndroid GridView のグリッドに表示していた画像の部分をカスタムViewにする
https://www.typea.info/blog/index.php/2017/09/09/android_gridview をベースに以下を変更する
1.GridViewの要素レイアウト を追加
画像を含んだ、GridViewの要素レイアウトを定義
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/txt_menu_item" android:layout_width="match_parent" android:layout_height="match_parent" android:text="MenuItem"/> <ImageView android:id="@+id/img_menu_item" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
2.Adapter の変更
GridView要素レイアウトを構築するよう修正
package info.typea.kaigiutil; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; /** * Created by pppiroto on 2017/09/09. */ public class MenuItemAdapter extends BaseAdapter{ private Context context; private LayoutInflater layoutInflater; private Integer[] menuItemThumbIds = { R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher }; public MenuItemAdapter(Context context) { this.context = context; this.layoutInflater = LayoutInflater.from(context); } @Override public int getCount() { return menuItemThumbIds.length; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { MenuItemViewHolder viewHolder; if (convertView == null) { convertView = layoutInflater.inflate(R.layout.menu_item, null); viewHolder = new MenuItemViewHolder(); viewHolder.txtMenuItem = (TextView)convertView.findViewById(R.id.txt_menu_item); viewHolder.imgMenuItem = (ImageView)convertView.findViewById(R.id.img_menu_item); convertView.setTag(viewHolder); } else { viewHolder = (MenuItemViewHolder)convertView.getTag(); } viewHolder.txtMenuItem.setText(String.format("MENU ITEM %02d",position)); viewHolder.imgMenuItem.setImageResource(menuItemThumbIds[position]); return convertView; } public static class MenuItemViewHolder { public TextView txtMenuItem; public ImageView imgMenuItem; } }