カスタムビューを要素として使用してカスタムアダプターによってフィードされたギャラリーがあります。私はこれらの要素がデフォルトで70%縮尺される必要があります。 問題は、ギャラリーが100%サイズのように振る舞い、30%透明パディング=要素間の間隔が大きすぎることです。わかりやすくするために、要素を100%と70%にスケーリングした2つの画像を添付しました。これは、異なる解像度の奇妙な挙動するよう子どものsetScaleX/Yを持つギャラリー
私はsetSpacingをハードコーディングすることはできません。私は運がないsetSpacing(0)を試しました。 このギャラリーは、元のサイズではなく、小さい(70%)ように動作するのですか?
私はRelativeLayoutを拡張カスタム要素MagazineCellのコンストラクタにsetScaleX/Yを追加することによって、要素をスケーリングている:
public MagazineCell(Context context) {
super(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layout = (RelativeLayout) inflater.inflate(R.layout.mag_big, null);
addView(layout);
this.setScaleX(0.7f);
this.setScaleY(0.7f);
}
IもdrawChild(にスケールを設定しようとした)ないとギャラリー運。アダプタではギャラリーの要素にこのクラスを使用しています:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MagazineCell cell;
position = getPosition(position);
if (null == convertView || convertView.getClass() != MagazineCell.class) {
cell = new MagazineCell(context);
} else {
cell = (MagazineCell) convertView;
}
return cell;
}
ギャラリーに特別なコードはありません。 Android 3.1を実行しているAcer Iconia TAB A500でSDK 11を使用しています。
ヒントやコメントありがとうございます。
この問題も発生しました。 –