私の問題は、グリッドビューの画像が 200x500 と言われていますが、各グリッド領域が 500x500 であることにあります (これらは正確ではない例です)。静的で変化しない 2x4 グリッドがあります。android:verticalspacing を設定することで水平方向の間隔を変更できますが、さまざまなサイズの画面であらゆる種類の問題が発生します。できれば、各グリッドを画像に合わせて縮小し、画面サイズ全体で動的にしたいと考えています。以下は私のGridviewアダプターとレイアウトxmlです
public class MainAdapter extends BaseAdapter {
private Context mContext;
// Keep all Images in array
public Integer[] mThumbIds = {
R.drawable.install, R.drawable.wipe,
R.drawable.backup, R.drawable.restore,
R.drawable.mount, R.drawable.settings,
R.drawable.advanced, R.drawable.reboot
};
// Constructor
public MainAdapter(Context c){
mContext = c;
}
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
return mThumbIds[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(mThumbIds[position]);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
return imageView;
}
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/bottom_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
ads:adSize="BANNER"
ads:adUnitId=""
/>
</LinearLayout>
<GridView
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="2"
android:columnWidth="90dp"
android:horizontalSpacing="2dp"
android:verticalSpacing="10dp"
android:gravity="center"
android:stretchMode="columnWidth"
android:layout_above="@id/bottom_view" >
</GridView>
</RelativeLayout>