ゲームのメニューをプログラムしようとしていますが、レベルを選択したいと思っています。行ごとに 5 つのボタンを含む 3 つの行が必要です。
for(int i=0; i<3; ++i){
for(int j=0; j<5; ++j){
ImageButton button = new ImageButton(this);
RelativeLayout.LayoutParams paramsBut = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
paramsBut.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
paramsBut.addRule(RelativeLayout.ALIGN_PARENT_TOP);
int marginLeft = (int)((float)(sizeLeftWidth/6) * (j+1)) + j*buttonSize;
int marginTop = (int)((float)(sizeLeftHeight/4) * (i+1)) + i*buttonSize;
paramsBut.leftMargin = marginLeft;
paramsBut.topMargin = marginTop;
button.setAdjustViewBounds(true);
button.setMaxWidth(buttonSize);
button.setMaxHeight(buttonSize);
button.setBackgroundDrawable(null);
Bitmap bmp = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.level),buttonSize,buttonSize,false);
Drawable d = new BitmapDrawable(bmp);
button.setImageDrawable(d);
layout.addView(button,paramsBut);
}
}
相対レイアウト:
RelativeLayout layout = new RelativeLayout(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);
layout.setLayoutParams(params);
問題は、ボタンが正しい位置にないことです。問題は余白にあると思います。私はマージンでそれを正しくやっていますか、それともコード全体が完全にばかげていますか? (自分のプログラミングスタイルを改善するためのヒントが得られると、いつも嬉しく思います ^^)