グリッド ビューに表示される余分なパディングを削除したいと考えています。グリッド内のセルを占めるサイズ 128*128 の画像があります。しかし、どういうわけか、グリッドの内容に追加される余分なスペースがあります。
調査の結果、グリッド ビューの listSelector プロパティをオーバーライドする必要があることがわかりました。ここで質問です。ここで xml ドローアブルのようなものを指定する必要があることはわかっていますが、その中で何を指定すればよいのでしょうか?? パディングとストロークを 0dp に設定したシェイプ ドローアブルを使用してみましたが、役に立ちませんでした。
ここで質問と回答が行われていますが、drawable に含まれている必要があるものは指定されていません。
誰かがこれで私を助けることができますか?ありがとう!
編集: OK -ここに私が持っている UI のコピーがあります。XML レイアウトは次のとおりです。
<GridView android:id="@+id/GV_A2ZMenu" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:numColumns="4"
android:layout_gravity="top" android:stretchMode="columnWidth"
android:gravity="center" android:listSelector="@null" />
また、BaseAdapter クラスを使用して gridView を設定しています。そのコードは次のとおりです。
public class AtoZMenu extends BaseAdapter {
private static Context AppC;
private Integer[] MenuImg = { R.drawable.alphabet_a, R.drawable.alphabet_b,
R.drawable.alphabet_c, R.drawable.alphabet_d,
R.drawable.alphabet_e, R.drawable.alphabet_f,
R.drawable.alphabet_g, R.drawable.alphabet_h,
R.drawable.alphabet_i, R.drawable.alphabet_j,
R.drawable.alphabet_k, R.drawable.alphabet_l,
R.drawable.alphabet_m, R.drawable.alphabet_n,
R.drawable.alphabet_o, R.drawable.alphabet_p,
R.drawable.alphabet_q, R.drawable.alphabet_r,
R.drawable.alphabet_s, R.drawable.alphabet_t,
R.drawable.alphabet_u, R.drawable.alphabet_v,
R.drawable.alphabet_w, R.drawable.alphabet_x,
R.drawable.alphabet_y, R.drawable.alphabet_z };
public AtoZMenu(Context C) {
AppC = C;
}
public int getCount() {
return MenuImg.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView IV;
float density = AppC.getResources().getDisplayMetrics().density;
if (convertView == null) {
IV = new ImageView(AppC);
IV.setMaxHeight((int) (1));
} else {
IV = (ImageView) convertView;
}
IV.setImageResource(MenuImg[position]);
return IV;
}
}
あなたは間違いを見つけることができますか?
注:最終的に、より優れたグリッドをレンダリングするテーブル レイアウトに同様の画面を実装することになりました。