3

次のレイアウトでアプリケーションを構築しています。

RelativeLayoutコンテナには、背景としてImageViewの子があり、ページの実際のコンテンツとして他の2つのRelativeLayoutがあります。

これらのビューのルールは次のように設定されています。

// Define rules and params for views in the container
ImageView backgroundImg = new ImageView(this);
RelativeLayout.LayoutParams lpImg = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
lpImg.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
backgroundImg.setImageResource(R.drawable.baggrund_smartphones_retina);
backgroundImg.setLayoutParams(lpImg);

RelativeLayout mainLayout = (RelativeLayout)findViewById(R.id.fragment_main_layout);
RelativeLayout storeLayout = (RelativeLayout)findViewById(R.id.fragment_store_layout);
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(screenWidth, LayoutParams.MATCH_PARENT);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(screenWidth, LayoutParams.MATCH_PARENT);
lp1.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
lp2.addRule(RelativeLayout.RIGHT_OF, R.id.fragment_main_layout);
mainLayout.setLayoutParams(lp1);
storeLayout.setLayoutParams(lp2);

root.removeAllViews();

//Add background first to ensure its in the back
snapView.addInfoPage(backgroundImg);
snapView.addInfoPage(mainLayout);

これが私の問題です。しかし、私のRelativeLayoutsは親に適切に整列していますが、ImageViewはそうではありません。代わりに、imageviewは次のような場所です。

ここに画像の説明を入力してください

私は何が間違っているのですか?

4

2 に答える 2

1

画像のサイズがparentLayoutの画面のサイズよりも小さい可能性があります。

したがって、画像をすべての画面に合わせるには、android:scaleTypexmlを介してimageViewタグの属性を使用します。

<ImageView android:id="@+id/img"
blabla 
blabla 
android:scaleType="fitXY" />

またはプログラムで:

imgView.setScaleType(ScaleType.FIT_XY);
于 2012-12-20T09:47:14.123 に答える
0

このように変化する

RelativeLayout.LayoutParams lpImg = new RelativeLayout.LayoutParams(screenWidth, LayoutParams.MATCH_PARENT);

代わりに

RelativeLayout.LayoutParams lpImg = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

そして、このようにimageviewを修正します

backgroundImg.setLayoutParams(ScaleType.FIT_XY);
于 2012-12-20T09:50:58.757 に答える