Androidグリッドビューでは、グリッドビューの行の間に余分なスペースがあります。グリッドビューにスペースを追加していません。
これが私のxmlファイルです
<GridView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/grid"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:horizontalSpacing="5px"
Android:numColumns="3"
Android:columnWidth="50dip"
Android:verticalSpacing="0dip"
Android:gravity="center"
/>
グリッドビューにビューを追加しているimageviewの他のxmlは
<ImageView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/singlePhoto"
Android:layout_gravity="top"
Android:layout_width="145dip"
Android:layout_height="145dip"
Android:layout_marginTop="0dip"
Android:layout_marginBottom="0dip"
>
</ImageView>
Adapterクラスでは、コードは次のとおりです。
if(mView == null){
mView = mLayoutInflater.inflate(R.layout.newsgridthumbpic, null);
}
ImageView mImage = (ImageView)mView.findViewById(R.id.singlePhoto);
PhotoGridInfoSet mInfo = (PhotoGridInfoSet)details.get(position);
if(mImage != null){
mImage.setTag(mInfo.getPhotoThumbNailString());
mImage.setVerticalScrollBarEnabled(true);
mImage.setVerticalFadingEdgeEnabled(true);
}
}!
スペースはグリッドビューの行の間にあります。コードのどこにもスペースを追加していませんが、垂直方向のスペースがあります。グリッドビューの行の間にスペースがある理由がわかりません。このスペースは、hdpiデバイス/エミュレーターには表示されません。この問題は、mdpiおよびldpiデバイス/エミュレーターにあります。
私はこの問題の解決策を得ました。
これを解決するには、xmlファイルに1行追加する必要があります
Android:adjustViewBounds="true"
そしてこれを追加した後。スペースは現在表示されていません
最後の2行をgridViewに入れるだけです
<GridView
Android:numColumns="2"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:id="@+id/gridView"
Android:horizontalSpacing="0dip"
Android:verticalSpacing="0dip"/>
ただあなたの 「newsgridthumbpic」 レイアウトには、グリッドビュー要素よりも高い高さの余分なパディングや背景画像は含まれていません。
また、供給していることを再確認してください 列幅 なので 50dip しかし、あなたの 「imageview's」 幅は 145ディップ。
これを見てくださいそれは便利です-
http://developer.Android.com/guide/topics/ui/layout/gridview.html
(SOは、編集を送信するために、さらにいくつかの文字を追加するように要求しました)
グリッドビューでAndroid:verticalSpacingを負の値に設定します。垂直方向のスペースが削除されます。
(例:Android:verticalSpacing = "-10dp")
正しい値を取得するためにいくつかの数値でテストする
<GridView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/grid"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:horizontalSpacing="5px"
Android:numColumns="3"
Android:columnWidth="50dip"
Android:verticalSpacing="0dip"
Android:gravity="center"/>
<ImageView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/singlePhoto"
Android:layout_width="145dip"
Android:layout_height="145dip"
Android:scaleType="fitXY">
</ImageView>
次の行をurgetView()メソッドに入れます。
mImage.setPadding(0, 0, 0, 0);
これがお役に立てば幸いです。
アスペクト比を維持しながら、50dpの列幅に合うように画像が拡大縮小されているようです。これは、垂直レイアウトに埋められていないスペースの束を導入しています。列の幅を50dpにする場合、これらの間隔の問題を解決する最も簡単な方法は、imageviewの幅を50dpに調整し、それに比例してimageviewの高さを調整することです。