0

レイアウトに複数の新しいImageViewを配置する必要があります。問題は、まったく同じ場所で1つが別の1つの上に来ることです。場所を変更しましたが、最初の場所にのみ関連しています。どちらも80,80です。

RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

    addpPicD(lp1,80,80);
    addpPicD(lp1,100,100);
}

private void addpPicD(LayoutParams lp, int Lan, int Lon) 
{

        lp.setMargins(Lan, Lon, 0, 0);
        ImageView imageView = new ImageView(this);  
        imageView.setImageResource(R.drawable.dot_bl);  
        imageView.setLayoutParams(lp);
        rel.addView(imageView);

}
4

2 に答える 2

3

RelativeLayout独自のを持っていLayout Parametersます。子ビューを並べて、または垂直に配置するには、ルールを指定する必要があります。addRule()追加する各ビューのレイアウトパラメータで使用します。

位置合わせするビューのビューとともにRelativeLayout.BELOWRelativeLayout.RIGHT_OFなどの値を渡します。id

于 2012-12-25T17:35:24.023 に答える
1

問題は、最初にレイアウトを作成するときにlayoutparamsを設定すると、思ったとおりに再作成されないことです。

シンプルなソリューション。私がテストしたように機能する以下のコードに変更します。

RelativeLayout.LayoutParams lp1 = null;

addpPicD(lp1,80,80);
addpPicD(lp1,100,100);
}

private void addpPicD(LayoutParams lp, int Lan, int Lon) 
{
    lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    lp.setMargins(Lan, Lon, 0, 0);
    ImageView imageView = new ImageView(this);  
    imageView.setImageResource(R.drawable.dot_bl);  
    imageView.setLayoutParams(lp);
    rel.addView(imageView);

}
于 2012-12-25T17:45:54.453 に答える