12

LinearLayout に負の左マージンを与えようとすると、問題が発生しました。
マイナスマージンは表示されません。
これが私のコードです

HorizontalScrollView hview = new HorizontalScrollView(context); //  HorizontalScrollView is the outer view   
RelativeLayout.LayoutParams hs_lot_params = new RelativeLayout.LayoutParams(164, 164);
hs_lot_params.setMargins(100, 100, 0, 0); // set the positions

ImageView image = new ImageView(context);
image.setBackgroundResource(R.drawable.leder);
LinearLayout.LayoutParams img_lot_params = new LinearLayout.LayoutParams(164, 164);
img_lot_params.setMargins(0, 0, 0, 0);

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(164, 164);
layoutParams.setMargins(-132, 0, 0, 0);
ll.addView(image, img_lot_params);
hview.addView(ll, layoutParams);

注:私の計画は、画像を左から右にスクロールすることです。
まず、画像の左側の部分が非表示になっており、右にスクロールして画像全体を表示できます

4

2 に答える 2

0

負のマージンはLinearLayoutおよびで機能するはずRelativeLayoutです。おそらく必要なのは、スクロールするHorizontalScrollViewscrollBy(int x, int y)scrollTo(int x, int y)説明した「ピークアンドスクロール」効果を実現することです。

また、実際のサイズは画面のピクセル密度に依存するため、生のピクセル単位を使用することは一般的に悪い考えであることに注意してください。dp代わりに測定を優先します。

于 2015-05-24T11:09:18.100 に答える